Java一个大的替身



我有一个字符串是"999999999999",我想将其交换为双倍值。

因此,当我使用Double.parseDouble()方法时,结果是1.0E16。我的代码活在这里:

String strValue = "9999999999999999";
double value = Double.parseDouble(strValue);
System.out.println(value);

如何解析它以获得999999999999.0的绝对值?请帮帮我,谢谢你。

对于大数字,可以使用BigDecimal。

将值存储为

BigDecimal number = new BigDecimal("9999999999999999.0");

更多信息请点击此处:https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html

只有有理数的有限子集可以精确地表示为二重。9999999999999999不是其中之一。

9999999999999999正好位于两个双值1.0E16和9.99999999998E15之间的一半。在这两者中,第一个具有以零结束的双位模式,因此是最接近结果的正确舍入。

在大多数物理测量情况下,差异太小而无关紧要。如果差异真的很重要,但您需要进行算术运算以得到分数,请使用BigDecimal。

相关内容

  • 没有找到相关文章

最新更新