2014-11-07 65 views
0

我想在Ruby中编写一个小程序,并遇到以下问题:Ruby似乎无法将括号中的数字分组。在Ruby中用圆括号分组数字不起作用吗?

例如:

puts (2 - 0)/10 

# prints out 0 

有明显在这里逻辑一个缺陷。应该发生的是(2 - 0)首先得到评估(根据操作顺序),然​​后(2 - 0)应该除以10

用Ruby中的圆括号分组无效吗?顺便说一下,我使用2.1.2。

+1

看起来像在你的第二个代码示例中,由于2减去0(即'0/10')为2,你会期望它打印出'2',而不是'0'。 – 2014-11-07 01:10:33

+0

@JesseSielaff拍摄,是啊,你对了。我会解决这个问题。 – GDP2 2014-11-07 01:20:37

回答

2

你正在做整数除法没有意识到它。 2/10与整数除法的0等效。

尝试,而不是运行此:

puts (2 - 0)/10.0 

# prints out 0.2 

你可能会得到一个答案更像你期待什么。原因是通过将10更改为10.0,您将操作转换为浮点除法。

+0

啊,我明白你在说什么了。我想我忘记了整数除法和浮点除法之间的区别:P – GDP2 2014-11-07 01:08:09