2014-03-28 47 views

回答

5

the documentation for to_i,「如果沒有一個有效的一些在str開始,則返回0」。

+1

可能值得注意的是'nil.to_i '是'0',所以''pancakes'.to_i.nil?'會有點不一致。擁有'nil.to_i == 0'是各種方便的,'s'.to_i'的唯一明智的選擇是'0','nil'或者一個異常。 –

+1

@ muistooshort,我有興趣閱讀你的評論,因爲我一直在煎餅問題上花了很長時間。 –

+0

OMG導致 「9.1」 .to_i == 9 「9.1」 .to_f == 9.1 「9 1」 .to_f == 9.0 「9100」 .to_i == 9 我想我會首選零。爲什麼0比零更方便? –

3

對字符串調用.to_i將通過解釋字符串開頭的有效數字來返回一個數字(以10爲底)。

"string".to_i返回0,因爲.to_i無法解釋字符串開頭的有效數字。 "9".to_i返回9,因爲前導(或在這種情況下,唯一的)字符是「9」,它可以被解釋爲一個有效的數字。

這並不意味着在以字母開頭的字符串上調用.to_i將始終返回0。例如,"b6".to_i(16)返回182,因爲這意味着你想詮釋「B6」(在基地16,又名十六進制)作爲基地10

在這裏看到的文檔:http://www.ruby-doc.org/core-2.1.0/String.html#method-i-to_i

相關問題