2013-07-16 52 views

回答

6

带前导零的数字是八进制数。

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

啊。谢谢。处理前导零的最佳方法是什么?要删除它?或者是否有一种转换方法将其视为30? –

+0

如果'030'是字符串,则可以通过''030'.to_i'转换为Fixnum。 – falsetru

+1

'030'在多种语言中被解释为八进制,包括JavaScript和C派生语言。 – tadman

0

你或许应该看看你如何,你必须030转换为30的情况下结束。

如果你把任何用户输入的,你很可能在瞬间收到用户输入,开始用绳子"030",然后调用"030".to_i会给你的30期望的结果。

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