处理带前导零的ruby八进制

处理带前导零的ruby八进制,ruby,numbers,integer,zero,Ruby,Numbers,Integer,Zero,输出结果 puts (030).to_i 是24-由于Ruby的八进制表示。如果030是一个fixnum(而不是字符串),有没有办法将其转换为30? (执行(030)。to_s还将返回'24')前导零的数字是八进制数 030 == 3 * 8 ** 1 + 0 * 8 ** 0 您可能应该看看如何在必须将030转换为30的情况下结束 如果您接受任何类型的用户输入,您可能会在收到用户输入时,从字符串“030”开始,然后调用“030”。to_i将为您提供所需的30结果 修复代码使用字符串到整数的

输出结果

puts (030).to_i
24
-由于Ruby的八进制表示。如果
030
是一个fixnum(而不是字符串),有没有办法将其转换为30?

(执行
(030)。to_s
还将返回
'24'

前导零的数字是八进制数

030 == 3 * 8 ** 1 + 0 * 8 ** 0

您可能应该看看如何在必须将
030
转换为
30
的情况下结束

如果您接受任何类型的用户输入,您可能会在收到用户输入时,从字符串
“030”
开始,然后调用
“030”。to_i
将为您提供所需的
30
结果


修复代码使用字符串到整数的转换可能更“干净”,而不是以八进制结束,然后通过去掉前导0返回整数。

Ah。谢谢处理前导零的最佳方法是什么?要移除它吗?或者是否有一种转换方法将其视为30?如果
030
是字符串,您可以通过
'030'将其转换为Fixnum。to_i
030
在许多语言中被解释为八进制,包括JavaScript和C派生语言。前导零,除非前导零后面紧跟着
x
/
x
(十六进制)或
b
/
b
(二进制)。这是文档中非常基本的内容。