-2

我正在使用红宝石 irb

   -1/4
=> -1
   0-1
=> -1
   0-1/4
=> 0

为什么 0-1/4 会为零?

我的计算如下图所示在此处输入图像描述

4

2 回答 2

2

1/4为零 - 因为两个操作数都是整数,所以结果也被限制为整数。这与您之前观察到的行为相同-1/4

如果您想要一个非整数结果,则其中一个或两个操作数必须是浮点数。例如:

0 - 1 / 4.to_f

to_f使解释器将数字解释为浮点数。

编辑:顺便说一句,你的计算是错误的。0 - 1/4不一样(0-1) / 4。始终以正确的顺序进行操作!

于 2013-10-30T11:23:54.273 回答
1

因为 1 / 4 是 0。而 0 - 0 是 0。

0 - (1 / 4)

你要这个:

(0 - 1) / 4

这样,您可以确保首先发生减法。阅读运算符优先级。

于 2013-10-30T11:21:54.793 回答