0
我想在Ruby中编写一个小程序,并遇到以下问题:Ruby似乎无法将括号中的数字分组。在Ruby中用圆括号分组数字不起作用吗?
例如:
puts (2 - 0)/10
# prints out 0
有明显在这里逻辑一个缺陷。应该发生的是(2 - 0)
首先得到评估(根据操作顺序),然后(2 - 0)
应该除以10
。
用Ruby中的圆括号分组无效吗?顺便说一下,我使用2.1.2。
我想在Ruby中编写一个小程序,并遇到以下问题:Ruby似乎无法将括号中的数字分组。在Ruby中用圆括号分组数字不起作用吗?
例如:
puts (2 - 0)/10
# prints out 0
有明显在这里逻辑一个缺陷。应该发生的是(2 - 0)
首先得到评估(根据操作顺序),然后(2 - 0)
应该除以10
。
用Ruby中的圆括号分组无效吗?顺便说一下,我使用2.1.2。
你正在做整数除法没有意识到它。 2/10
与整数除法的0
等效。
尝试,而不是运行此:
puts (2 - 0)/10.0
# prints out 0.2
你可能会得到一个答案更像你期待什么。原因是通过将10
更改为10.0
,您将操作转换为浮点除法。
啊,我明白你在说什么了。我想我忘记了整数除法和浮点除法之间的区别:P – GDP2 2014-11-07 01:08:09
看起来像在你的第二个代码示例中,由于2减去0(即'0/10')为2,你会期望它打印出'2',而不是'0'。 – 2014-11-07 01:10:33
@JesseSielaff拍摄,是啊,你对了。我会解决这个问题。 – GDP2 2014-11-07 01:20:37