数学表达式的意外结果

时间:2013-10-30 11:20:08

标签: ruby irb

我正在使用ruby irb

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

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

我的计算如下图enter image description here

所示

2 个答案:

答案 0 :(得分:2)

1/4为零 - 由于两个操作数都是整数,因此结果也会浮动到整数。这与您之前使用-1/4观察到的行为相同。

如果需要非整数结果,则一个或两个操作数必须为浮点数。例如:

0 - 1 / 4.to_f

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

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

答案 1 :(得分:1)

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

0 - (1 / 4)

你想要这个:

(0 - 1) / 4

这样可以确保首先进行减法。阅读运营商优先权。