java - float 舍入到2位小数java

标签 java floating-point decimal rounding bigdecimal

我正在尝试将 float 舍入到 2 位小数。

我有 2 个浮点值:

1.985
29.294998

它们都需要四舍五入,所以我最终得到以下内容:

1.99
29.30

当我使用下面的方法时:

public static Float precision(int decimalPlace, Float d) {

    BigDecimal bd = new BigDecimal(Float.toString(d));
    bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
    return bd.floatValue();
  }

结果是:

1.99
29.29

最佳答案

由于您使用的是 BigDecimal.ROUND_HALF_UP,因此 29.294998 被四舍五入为 29.29。您可能想改用 BigDecimal.ROUND_UP

检查 BigDecimal doc有关可用的每个舍入的更多信息。

关于java - float 舍入到2位小数java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17577446/

相关文章:

java - Nimbus 外观和感觉 JTabbedPane 选项卡背景颜色

c++ - 优化,分支消除

Python 的丰富比较行为(或者,当 Decimal ('100.0' 时)< .01)

java - 制作幻灯片,自动更换图像

java - 当代理移动时,旋转形状与相机一起移动

c - 在 C 中打印一个带有两位小数但没有尾随零的 float

ms-access - 在 VBA 中模拟 IBM 浮点乘法/加法

python - Python 2 Decimal 的 Sin、cos 等?

python - 用 Python 做会计的最佳实践

java - 对访问计数有点困惑