您的位置:

java科学计数法,Java科学计数法转成正常数字

本文目录一览:

java科学记数法如何转化成普通记数法

可以借助java.text.DecimalFormat类,先将科学记数法转为指定的格式的字符串,再转为需要的普通计数法。代码可以参考:

  double a = 1.1234546789E6;

  java.text.DecimalFormat df = new java.text.DecimalFormat("00.00");//""00.00"小数点后面的0的个数表示小数点的个数

  String b = df.format(a);

JAVA如何将浮点数输出为指定位数的科学计数法?

希望可以帮到你:

@Test

public void test4(){

        float exp1 = 1.39e-43f;  

        System.out.println("科学计数法1==" + exp1);// 表示1.39乘以10的负43次方  

  

        double exp2 = 47 * 10000000000000000000000000000000000000d;  

        System.out.println("科学计数法2==" + exp2);// 表示47乘以10的37次方===4.7E38  

  

        float exp3 = 1e-43f;// 此时43后面必须加上f,否则会报错.编译器同擦汗那个会将指数最为双精度处理。  

        System.out.println("科学计数法3==" + exp3);// 表示1乘以10的负43次方  

        System.out.printf("%9.2f",exp3);

        System.out.printf("%-9.2f",exp3);

//         long n = 200;// 此时不需要在200后面加l,因为编译器能识别这个类型,在这里不存在含混不清的地方。  

//         System.out.println(n);  

//         

//         double d = 345.678;  

//         String s = "hello!";   

//         int i = 1234;  

//         //"%"表示进行格式化输出,"%"之后的内容为格式的定义。  

//         System.out.printf("%f",d);//"f"表示格式化输出浮点数。  

//         System.out.printf("%9.2f",exp3);//"9.2"中的9表示输出的长度,2表示小数点后的位数。  

//         System.out.printf("%+9.2f",d);//"+"表示输出的数带正负号。  

//         System.out.printf("%-9.4f",d);//"-"表示输出的数左对齐(默认为右对齐)。  

//         System.out.printf("%+-9.3f",d);//"+-"表示输出的数带正负号且左对齐。  

//         System.out.printf("%d",i);//"d"表示输出十进制整数。  

//         System.out.printf("%o",i);//"o"表示输出八进制整数。  

//         System.out.printf("%x",i);//"d"表示输出十六进制整数。  

//         System.out.printf("%#x",i);//"d"表示输出带有十六进制标志的整数。  

//         System.out.printf("%s",s);//"d"表示输出字符串。  

//         System.out.printf("输出一个浮点数:%f,一个整数:%d,一个字符串:%s",d,i,s);//可以输出多个变量,注意顺序。  

//         System.out.printf("字符串:%2$s,%1$d的十六进制数:%1$#x",i,s);//"X$"表示第几个变量。  

}

java 科学计数法怎么转换为数字

首先,需要将科学计数法转换成一下:

例如:

BigDecimal bd = new BigDecimal("3.40256010353E11");

然后转换成字符串:

String str = bd.toPlainString();

如果这个数字的长度是在int的范围内的话,是可以转换成int类型:

int a = Integer.parsInt(str);

如果这个数字的长度不是在Int范围内的话,得到的就不是你想要的数字了!

JAVA 关于科学计数法的解决

import java.util.Arrays;

class Animal

{

static String str = "3.4E-5";

static double 转换后的数 = 0;

public static void main(String[] args)

{

Animal animal = new Animal();

转换后的数 = animal.conversion(str);

double[] buf = {2,0.1234,转换后的数,0.1234,0.1234};

String[] ss = new String[buf.length];

Arrays.sort(buf);//从小到大排列

for(int i = 0; i buf.length;i++)

{

if(buf[i] == 转换后的数)//如果是原来的科学计数,将原来的str存至ss数组

{

ss[i] = str;

}

else

ss[i] = buf[i] + "";

}//打印出排列后的结果

System.out.print("比较后:" );

for(String s : ss)

System.out.print(s + " "); }

//将科学计数转换成正常数字

public double conversion(String str)

{

String[] s = str.split("E-");

double num1 = Double.parseDouble(s[0]);

double num2 = Double .parseDouble(s[1]);

return num1 * Math.pow(10d, num2);

}

} 运行结果:比较后:0.1234 0.1234 0.1234 2.0 3.4E-5

java中如何将科学计数法转成int类型

首先,需要将科学计数法转换成一下:

例如:

BigDecimal bd = new BigDecimal("3.40256010353E11");

然后转换成字符串:

String str = bd.toPlainString();

如果这个数字的长度是在int的范围内的话,是可以转换成int类型:

int a = Integer.parsInt(str);

如果这个数字的长度不是在Int范围内的话,得到的就不是你想要的数字了!

java 如何将2.12转换成科学计数法2.1200e+00显示

将2.12转换成科学计数法2.1200e+00显示的Java程序如下

public class A {

 public static void main(String[] args) {

  double d=2.12;

  String s=String.format("%e", d);//%e表示结果被格式化为用计算机科学记数法表示的十进制数 

  System.out.println(s);

 }

}

运行结果

2.120000e+00