【发布时间】:2018-11-27 09:07:00
【问题描述】:
我想将双精度值格式化为 6 位精度而不进行四舍五入。
格式化后的预期值到小数点后 6 位
20790123833965.960938
我尝试过使用十进制格式
DecimalFormat formatter = new DecimalFormat("#0.000000");
System.out.println(formatter.format(hashValue) );
我得到了这个
20790123833965.960000
【问题讨论】:
-
结果是合理的,一个
double只能提供15到16位小数的精度。 -
输入是什么?
-
为了获得更高的精度,请使用
BigDecimal:BigDecimal hashValue = new BigDecimal("20790123833965.960938123");然后它将产生预期的输出。 -
任何答案有帮助吗?如果没有,请告诉你你还缺少什么,我们仍然在这里提供帮助。如果是,请记住接受最有帮助的一个。谢谢。
标签: java precision number-formatting