我正在使用红宝石 irb
-1/4
=> -1
0-1
=> -1
0-1/4
=> 0
为什么 0-1/4 会为零?
我的计算如下图所示
1/4
为零 - 因为两个操作数都是整数,所以结果也被限制为整数。这与您之前观察到的行为相同-1/4
。
如果您想要一个非整数结果,则其中一个或两个操作数必须是浮点数。例如:
0 - 1 / 4.to_f
to_f
使解释器将数字解释为浮点数。
编辑:顺便说一句,你的计算是错误的。0 - 1/4
不一样(0-1) / 4
。始终以正确的顺序进行操作!
因为 1 / 4 是 0。而 0 - 0 是 0。
0 - (1 / 4)
你要这个:
(0 - 1) / 4
这样,您可以确保首先发生减法。阅读运算符优先级。