Ruby似乎选择将负数向下舍入而不是接近于零。
-1.5.round
#=>-2
正数以另一种方式起作用:
2.5.round
#=>3
如何舍入负数(接近零)而不是将它们四舍五入?我使用的是ruby 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