首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么"string".to_i =0而"9".to_i =9

为什么"string".to_i =0而"9".to_i =9
EN

Stack Overflow用户
提问于 2014-03-28 10:33:40
回答 2查看 279关注 0票数 0

你好,我想知道为什么会这样,以及to_i是如何定义的。

一个简单的问题,为什么

代码语言:javascript
复制
"string".to_i
=> 0?


"9".to_i
=> 9
EN

回答 2

Stack Overflow用户

发布于 2014-03-28 10:36:25

根据the documentation for to_i的说法,“如果在str的开头没有有效的a数字,则返回0”。

票数 5
EN

Stack Overflow用户

发布于 2014-03-28 11:22:50

在字符串上调用.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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22703132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档