为什么Integer(“09”)在ruby中抛出异常而Integer(“07”)工作得很好?

时间:2012-10-30 10:13:29

标签: ruby

我正在使用ruby 1.9.3

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

提前致谢。

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:3)

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