在没有科学记数法的情况下在java中显示double的完整值

时间:2015-04-02 12:33:42

标签: java

double d = 5000000000000000000034534534d;
System.out.println(String.valueOf(d)); // prints 5.0E27

现在,我希望显示完整的数字而不是科学记数法。

作为一个修复,我添加了新的Bigdecimal,它可以正常工作,直到10-12位不是大数字。

System.out.println(new BigDecimal(d).toString()) // prints 4999999999999999791559868416

与double值不同。需要一个解决方案来打印正确的数字,直到25位数。

1 个答案:

答案 0 :(得分:1)

您的double值包含太多有效数字,并且无法存储为double。

您需要使用BigDecimal。

请查看有关原因Why should we use BigDecimal instead of Double in the real world?

的SO答案