似乎Ruby选择将负数倒圆而不是接近零。当数字为零时向上取整而不是向下取整
-1.5.round
#=>-2
而正数工作的其他方式:
2.5.round
#=>3
如何围捕负数(接近零),而不是四舍五入下来的?我使用的是Ruby 2.2.2版本。
似乎Ruby选择将负数倒圆而不是接近零。当数字为零时向上取整而不是向下取整
-1.5.round
#=>-2
而正数工作的其他方式:
2.5.round
#=>3
如何围捕负数(接近零),而不是四舍五入下来的?我使用的是Ruby 2.2.2版本。
也许你必须做出一些调整,以圆形,只要你想:
def roundy(x)
x.to_i
if x<0
puts (x. + 0.1).round
else puts x.round
end
end
请列出你的Ruby版本。 – onebree
第一个问题是为什么你想要这样做?有几十个四舍五入方法,每个都有自己的优点和缺点,所以知道你的目标是理想的。一个好的舍入函数将数字上下一半舍入,这样就不会严重扭曲平均值或者和数。 – tadman
@tadman我想收集大量的对。我把这两个分开,然后把结果整理出来。但是,如果结果恰好是负值,则会下降而不是上升。这对我来说似乎不合逻辑,我希望解决它。 –