低于零时向上舍入而不是向下

时间:2015-07-20 21:21:08

标签: ruby rounding

Ruby似乎选择将负数向下舍入而不是接近于零。

-1.5.round
#=>-2

正数以另一种方式起作用:

2.5.round
#=>3

如何舍入负数(接近零)而不是将它们四舍五入?我使用的是ruby 2.2.2版。

2 个答案:

答案 0 :(得分:3)

这应该有用。

> (-1.5+0.5).floor
=> -1
> (-1.4+0.5).floor
=> -1
> (-1.6+0.5).floor
=> -2

答案 1 :(得分:0)

也许您必须根据需要进行一些调整:

    def roundy(x)
  x.to_i
  if x<0
    puts (x. + 0.1).round
  else puts x.round
  end
end