Tyr*_*ick 0 java double formatting decimal
我想在Java中将double格式化为2位小数.
我已经阅读了以下帖子: 如何在Java中将数字舍入到n个小数位
出于某种原因,这些方法中的每一种都无法处理我拥有的某些数字.
例如:
DecimalFormat df = new DecimalFormat("#.##");
normalizedValue = Double.valueOf(df.format(normalizedValue));
Run Code Online (Sandbox Code Playgroud)
如果我打印normalizedValue
我得到的结果类似于以下内容:
-78.64000000000001
18.97
59.469999999999985
-63.120000000000005
Run Code Online (Sandbox Code Playgroud)
(注意:有些格式正确...有些不是)
所以,这些方法似乎是圆的,但我需要的东西将删除2位小数后的所有小数...任何建议?
谢谢.
给出的字符串表示DecimalFormat.format(...)
确实在您的示例中只有2位数.但是一旦你将它重新转换为双精度,就会出现准确性问题.当您尝试表示"exakt"小数部分时,像double这样的二进制基本格式将始终显示此类效果.你可以改为BigDecimal
去除这种效果.
归档时间: |
|
查看次数: |
1937 次 |
最近记录: |