Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
输出结果
puts (030).to_i
是24- 由于 Ruby 的八进制表示。如果030是一个fixnum(而不是一个字符串),有没有办法将它转换为30? (表演(030).to_s也将回归'24'。)
24
030
(030).to_s
'24'
前导零的数字是八进制数。
030 == 3 * 8 ** 1 + 0 * 8 ** 0
您可能应该看看您最终是如何进入必须转换030为30.
30
如果您接受任何类型的用户输入,您可能在收到用户输入的那一刻,以字符串开头,"030"然后调用"030".to_i将为您提供所需的30.
"030"
"030".to_i
修复您的代码以使用字符串到 int 的转换,而不是以八进制结尾,然后通过去除前导 0 返回整数,这可能是“更干净”的。