我想在Java中打印 double 值而不使用指数形式。
double dexp = 12345678;
System.out.println("dexp: "+dexp);
它显示此E表示法:
1.2345678E7
。我希望它像这样打印它:
12345678
防止这种情况的最佳方法是什么?
最佳答案
您可以将printf()
与%f
结合使用:
double dexp = 12345678;
System.out.printf("dexp: %f\n", dexp);
这将打印dexp: 12345678.000000
。如果您不想要小数部分,请使用System.out.printf("dexp: %.0f\n", dexp);
%.0f
中的0表示小数部分为0,即无小数部分。如果要打印具有期望的小数位数的小数部分,则只需提供像%.8f
这样的数字即可,而不是0。默认情况下,小数部分最多打印6个小数位。这使用documentation中解释的格式说明符语言。
原始代码中使用的默认
toString()
格式拼写为here。关于java - 使用Java如何在没有科学计数法的情况下打印 double 值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16098046/