Java 十进制转换-NumberFormatException
我有Java 十进制转换-NumberFormatException,java,double,biginteger,Java,Double,Biginteger,我有 字符串编号=1.0E7 我想要它的数字等价物,即显示为 double x = 10000000.0000 我该怎么做呢 我试过Double number=Double.valueOf(number) 但是获取java.lang.NumberFormatException您想要格式化一个双精度值 String it = String.format("%f", 1.0e7); 应该这样做。如果您查看的文档,您可以看到 如果m小于10-3或大于或等于107,则用所谓的“计算机科学符号”表示
字符串编号=1.0E7代码>
我想要它的数字等价物,即显示为
double x = 10000000.0000
我该怎么做呢
我试过Double number=Double.valueOf(number)代码>
但是获取java.lang.NumberFormatException
您想要格式化一个双精度值
String it = String.format("%f", 1.0e7);
应该这样做。如果您查看的文档,您可以看到
如果m小于10-3或大于或等于107,则用所谓的“计算机科学符号”表示
这就是为什么即使将值解析为double,也只能得到科学符号,即1.0E7
您可以执行类似的操作来打印所需的双精度值
String number = "1.0E7";
String desiredFormat = String.format("%f", Double.parseDouble(number));
System.out.println(desiredFormat); // Prints 10000000.000000
String number = "1.0E7";
NumberFormat formatter = new DecimalFormat("#0.00");
System.out.println(formatter.format(Double.parseDouble(number)));
或者,如果您愿意,可以使用
String number = "1.0E7";
String desiredFormat = String.format("%f", Double.parseDouble(number));
System.out.println(desiredFormat); // Prints 10000000.000000
String number = "1.0E7";
NumberFormat formatter = new DecimalFormat("#0.00");
System.out.println(formatter.format(Double.parseDouble(number)));
这将非常有效
double number=1.0E7;
System.out.println(number);
NumberFormat formatter=new DecimalFormat();
System.out.println(formatter.format(number));
要将数字格式化为4位小数,请使用String.format(“%.4f”,num)
,如下例所示:
public class k {
public static void main(String argv[]) {
String number = "1.0E7";
Double num = Double.valueOf(number);
System.out.println("Double="+ num + " Formatted Double=" + String.format("%.4f", num));
}
}
输出:
String=1.0E7 Formatted Double=10000000,0000
如您所见,我的语言环境使用,
作为十进制分隔符。Double.valueOf(“1.0E7”)
工作正常。显示所有代码。这是;
数字值的一部分吗?
可以使用numberFormat。字符串和Double不能使用相同的变量名!可以将最后一行简化为System.out.format(“Double=%s Formatted Double=%1$.4f%n”,num);