Java为了钱而赔偿0.05

时间:2011-07-26 07:47:33

标签: java formatting rounding

我有7.125(双倍),需要将其设为7.15。什么是最简单的方法?

发现了,但是得到7.13,请帮助。

谢谢

3 个答案:

答案 0 :(得分:13)

最简单的方法是乘以20.0,舍入为整数并再次除以20.0。可以这样想:1.0 / 20.0 = 0.05 ......这就是为什么会起作用的原因。

注意,“舍入”与“地板”(或转换为int)不同。您应该java.lang.Math.round()用于doublefloat类型,java.math.BigDecimal.round(MathContext)用于BigDecimal类型

最好使用BigDecimal来实现此目标

答案 1 :(得分:3)

向下舍入到最接近的.05的简单方法如下。

int ans = java.lang.Math.round((7.125 / 0.5)) * 0.5

这适用于您想要舍入的任何增量。只需更改等式中的0.5即可。

答案 2 :(得分:-4)

将值放下,然后加0.15?