Ruby Fixnum部门没有按预期计算

时间:2017-08-09 17:34:28

标签: ruby

在irb中,-3 / 4的结果为-1,而不是0.但是,正如预期的那样,3/4的结果为0。

有谁知道发生了什么?

谢谢!

我明白了,谢谢!

1 个答案:

答案 0 :(得分:6)

这是因为/ operator执行floor操作。

所以-3/4等于-1而不是零。并且3/4等于零而不是1.

fix_div是ruby用来进行划分的方法。 fix_div使用fix_dividehere,您可以看到调用floor方法的位置。

fix_divfix_divide是C方法。