将十进制值舍入到最接近的0.05值?

时间:2011-06-13 13:11:12

标签: java decimal

我正在阅读How to round decimal value up to nearest 0.05 value?

它提到了以下内容。

   Math.ceiling(myValue * 20) / 20

这个黑客如何运作?我的意思是我们是如何得出这个解决方案的?

3 个答案:

答案 0 :(得分:5)

1/20是0.05

1/100是0.01

如果要舍入为0.01,则乘以100,舍入并除以100.同样,要舍入为0.05,则执行相同操作,但使用20。

答案 1 :(得分:4)

没有用于舍入到0.05的库函数,但是有一个用于舍入到1.00:上限。这几乎(嗯,双倍并不是绝对精确)与你粘贴的公式相同(20 * 0.05 = 1)

您是否尝试用替代品代替您的配方,看看会发生什么?

1.03 * 20 = 20.60
ceil(20.6) = 21
21/20 = 1.05

答案 2 :(得分:0)

它在Math.ceiling函数中将0.05映射到1(通过乘法),然后将结果映射回0.05(按除法)