我正在使用ruby 1.9.3
为什么Integer(“09”)在ruby中抛出“Integer异常值无效”而Integer(“07”)工作得很好?
提前致谢。
答案 0 :(得分:8)
因为前导零是八进制(“base 8”)表示法的通用约定。八进制中没有9
个数字,因此使用它时语法错误。
如果你写了Integer("014")
,你就得到了数字12.(因此,如果你不打算使用八进制表示法,请不要使用前导零。)
答案 1 :(得分:3)
如果以0开头,则认为是八进制。 9不是有效的八进制数字!