【发布时间】:2013-12-14 14:47:55
【问题描述】:
如何将整数四舍五入到最接近的十的倍数?
我试过integer.round(0.1),但它给出了最接近的十进制数。
示例:3 应返回 0,55 应返回 60。
有没有一种方法可以四舍五入到最接近的 10 的倍数?
【问题讨论】:
-
10*((x+5)/10)适用于非负整数。
如何将整数四舍五入到最接近的十的倍数?
我试过integer.round(0.1),但它给出了最接近的十进制数。
示例:3 应返回 0,55 应返回 60。
有没有一种方法可以四舍五入到最接近的 10 的倍数?
【问题讨论】:
10*((x+5)/10) 适用于非负整数。
Integer#round 有这个功能。
您将一个负数传递给round 以表示您想要四舍五入到哪个10 位。例如:
四舍五入到最接近的 10:
55.round(-1) # => 60
四舍五入到最接近的 100:
550.round(-2) # => 600
【讨论】:
你可以只除以 10,四舍五入,然后乘以 10:
nearest = (x/ 10).round * 10
【讨论】:
(15/10).round * 10 返回 10 但应该返回 20。
10.0,它会四舍五入到20。
x / 10 * 10呢?
x / 10 * 10 总是返回 x。