2

我正在使用红宝石 1.9.3

为什么 Integer("09") 在 ruby​​ 中抛出“Integer 异常的无效值”,而 Integer("07") 工作得很好?

提前致谢。

4

2 回答 2

8

因为前导零是八进制(“base 8”)表示法的常见约定。八进制中没有9数字,因此使用一个是语法错误。

如果您写了Integer("014"),您将得到数字 12。(因此,如果您不打算使用八进制表示法,请不要使用前导零。)

于 2012-10-30T10:14:52.837 回答
3

如果你以 0 开头,它认为它是八进制的。9 不是有效的八进制数字!

于 2012-10-30T10:14:45.427 回答