Mic*_*ael 1 java decimalformat
DecimalFormat四舍五入的方式似乎有些矛盾。
new DecimalFormat("0.0", new DecimalFormatSymbols(Locale.US)).format(number)
这是一些不同number值的返回值。
为什么会这样?更重要的是,如何获得正确的值(四舍五入为0.25时为0.3,四舍五入为0.45时为0.5)?
Javadoc指出:
DecimalFormat提供在RoundingMode中定义的舍入模式以进行格式化。默认情况下,它使用RoundingMode.HALF_EVEN。
HALF_EVEN完全符合您的注意:当它恰好位于两个数字之间的一半时,它更喜欢四舍五入到最接近的偶数。(由于多种原因,这很有用,主要是因为它不会平均偏上或偏下,从而趋于平衡舍入误差。)
只需呼吁setRoundingMode(RoundingMode.HALF_UP)您描述的行为。
| 归档时间: |
|
| 查看次数: |
613 次 |
| 最近记录: |