gpt4 book ai didi

ruby - Ruby 中具有负值的整数除法

转载 作者:数据小太阳 更新时间:2023-10-29 06:59:08 26 4
gpt4 key购买 nike

尝试在 Ruby 中进行负值除法,例如-123/10,为什么它返回 -13 而不是 -12?

ruby -v
ruby 1.9.3p375 (2013-01-18) [x86_64-darwin12.2.1]

irb(main):001:0> -123/10
=> -13
irb(main):002:0> -123%10
=> 7

-123/10 返回 -12,-123%10 按预期在 C/C++ 中返回 -3。

最佳答案

它是这样设计的。在负除法和模运算的情况下,Ruby 将数字舍入到负无穷大。这并不是 Ruby 独有的,Python 和 Perl 也有类似的行为。

但是,这种方法提供了一个很好的数学理由。

a/b = q 余数r

这样

b * q + r = a and 0 <= r < b

据我所知,日本是这样教算术的。

编辑:

sawa指出这是日本教正算术的方式,而不是负数。然而,正如他所说,这也可以扩展到负数。

来源:

Ruby Forums

关于ruby - Ruby 中具有负值的整数除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16530579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com