我有
String number = 1.0E7;
我想要它的数字等价物,即将其显示为
double x = 10000000.0000
我该怎么办呢?
我试过了Double number = Double.valueOf(number);
但获得java.lang.NumberFormatException
。
答案 0 :(得分:1)
您希望格式化一个双倍值。
String it = String.format("%f", 1.0e7);
应该这样做。
答案 1 :(得分:1)
这将完美无缺。
double number=1.0E7;
System.out.println(number);
NumberFormat formatter=new DecimalFormat();
System.out.println(formatter.format(number));
答案 2 :(得分:0)
如果您查看Double#toString(double)
的文档,就可以看到
如果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
如果您愿意,也可以使用NumberFormat
。
String number = "1.0E7";
NumberFormat formatter = new DecimalFormat("#0.00");
System.out.println(formatter.format(Double.parseDouble(number)));
答案 3 :(得分:0)
要格式化带有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
如您所见,我的语言环境使用,
作为小数点分隔符。