Java 处理具有 E 的 Double 值
Java Dealing with Double values having E
假设我有:
double Nc= 7.6695805E-4;
NumberFormat formatter = new DecimalFormat("0.00000000000");
String string = formatter.format(Nc);
System.out.println(string);
输出将是:
0.00076695805
但是是放在string类型的变量中!
我要做的是将它转换为 double 或 float 或 long,以便它应该与 0.00076695805 保持相同,以便我可以将它用于我的计算!
我试过的是:
double Nc= 7.6695805E-4;
NumberFormat formatter = new DecimalFormat("0.00000000000");
String string = formatter.format(Nc);
System.out.println(Double.parseDouble(string));
输出变为:
7.6695805E-4 //which is same as i gave
那应该怎么解决呢!
使用 BigDecimal。 1 java 文档
BigDecimal bd = new BigDecimal("String")
您可能会混淆双原语及其字符串表示形式——它们是两个完全不同的东西,一个不会影响另一个。解决方案是在需要显示时控制双精度的字符串表示形式。
解决方法是需要用double的时候用double,但是要打印格式化后的String,而不是从String中得到的double。所以不是:
double Nc= 7.6695805E-4;
NumberFormat formatter = new DecimalFormat("0.00000000000");
String string = formatter.format(Nc);
System.out.println(Double.parseDouble(string));
请注意,double 没有用它创建的字符串的内存,也不应该是 double != String。
所以,改为:
double nc= 7.6695805E-4; // variable names begin with lower-case
NumberFormat formatter = new DecimalFormat("0.00000000000");
String string = formatter.format(nc);
System.out.println(string);
或
double nc= 7.6695805E-4; // variable names begin with lower-case
NumberFormat formatter = new DecimalFormat("0.00000000000");
System.out.println(formatter.format(nc));
假设我有:
double Nc= 7.6695805E-4;
NumberFormat formatter = new DecimalFormat("0.00000000000");
String string = formatter.format(Nc);
System.out.println(string);
输出将是:
0.00076695805
但是是放在string类型的变量中! 我要做的是将它转换为 double 或 float 或 long,以便它应该与 0.00076695805 保持相同,以便我可以将它用于我的计算! 我试过的是:
double Nc= 7.6695805E-4;
NumberFormat formatter = new DecimalFormat("0.00000000000");
String string = formatter.format(Nc);
System.out.println(Double.parseDouble(string));
输出变为:
7.6695805E-4 //which is same as i gave
那应该怎么解决呢!
使用 BigDecimal。 1 java 文档
BigDecimal bd = new BigDecimal("String")
您可能会混淆双原语及其字符串表示形式——它们是两个完全不同的东西,一个不会影响另一个。解决方案是在需要显示时控制双精度的字符串表示形式。
解决方法是需要用double的时候用double,但是要打印格式化后的String,而不是从String中得到的double。所以不是:
double Nc= 7.6695805E-4;
NumberFormat formatter = new DecimalFormat("0.00000000000");
String string = formatter.format(Nc);
System.out.println(Double.parseDouble(string));
请注意,double 没有用它创建的字符串的内存,也不应该是 double != String。
所以,改为:
double nc= 7.6695805E-4; // variable names begin with lower-case
NumberFormat formatter = new DecimalFormat("0.00000000000");
String string = formatter.format(nc);
System.out.println(string);
或
double nc= 7.6695805E-4; // variable names begin with lower-case
NumberFormat formatter = new DecimalFormat("0.00000000000");
System.out.println(formatter.format(nc));