在ruby中转换数据类型时遇到了一些问题.
以下是我在控制台中获得的一些输出
0123 and enter gave me output 83
12345600.to_s #=> "12345600"
Run Code Online (Sandbox Code Playgroud)
但
012345600.to_s gave me #=> "2739072" but i expect "012345600"
Run Code Online (Sandbox Code Playgroud)
似乎在数字开头有0时输出不符合预期.
任何人都可以解释为什么会这样吗?或者为我提供一个解决方案,以便我可以获得预期的输出.
谢谢
在数字的开头处具有0使得解释器/编译器将以下数字解释为八进制数字序列(基数8)而不是十进制数字序列(基数10).因此,您输入的数字是八进制数而不是十进制数.
您可以通过将其置于八进制模式然后切换到十进制来在科学计算器上对此进行测试.