标签: ruby
在irb中,-3 / 4的结果为-1,而不是0.但是,正如预期的那样,3/4的结果为0。
有谁知道发生了什么?
谢谢!
我明白了,谢谢!
答案 0 :(得分:6)
这是因为/ operator执行floor操作。
floor
所以-3/4等于-1而不是零。并且3/4等于零而不是1.
-3/4
3/4
fix_div是ruby用来进行划分的方法。 fix_div使用fix_divide和here,您可以看到调用floor方法的位置。
fix_div
fix_div和fix_divide是C方法。
fix_divide