如何在Ruby On Rails中将数字舍入到动态精度?

Ton*_*ony 5 ruby-on-rails rounding

我想将数字舍入到最接近的数量级.(我想我说的没错)

这里有些例子:

Input => Output

8 => 10
34 => 40
99 => 100
120 => 200
360 => 400
990 => 1000
1040 => 2000
1620 => 2000
5070 => 6000
9000 => 10000
Run Code Online (Sandbox Code Playgroud)

有人知道在Ruby或Rails中写一个快速的方法吗?

基本上我需要知道数字的数量级以及如何舍入该精度.

谢谢!

Ber*_*Sed 14

这是另一种方式:

def roundup(num)
  x = Math.log10(num).floor
  num=(num/(10.0**x)).ceil*10**x
  return num
end
Run Code Online (Sandbox Code Playgroud)

更具有说服力:

def roundup(num)
  x = Math.log10(num).floor
  (num/(10.0**x)).ceil * 10**x
end
Run Code Online (Sandbox Code Playgroud)

  • 你不需要return语句.Ruby默认返回方法中最后一个语句的值.不错的解决方案.+1 (2认同)