Ruby 2.0 - 将整数舍入到最接近的10的倍数

oor*_*soy 24 ruby rounding

如何将整数舍入到最接近的十的倍数?

我试过integer.round(0.1)但它给出了最接近的十进制数.

示例:3应该返回0,55应该返回60.

有没有一种方法可以舍入到最接近的10的倍数?

Aru*_*hit 51

Integer#round具有该功能.

您传递一个负数round来表示您想要舍入到的10位数.例如:

舍入到最近的10:

55.round(-1) # => 60
Run Code Online (Sandbox Code Playgroud)

要舍入到最接近的100:

550.round(-2) # => 600
Run Code Online (Sandbox Code Playgroud)

  • 没关系,我不对,这很好用!我误读了文档:) (2认同)

Hun*_*len 14

你可以除以10,舍入,然后乘以10:

nearest = (x/ 10).round * 10
Run Code Online (Sandbox Code Playgroud)

  • 这只是因为整数除法截断小数,如果除以"10.0"而不是它将舍入到20. (3认同)
  • 如果你想要向下舍入(这是我的要求),你可以做(​​x/10.0).floor*10 (2认同)