You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby中Integer方法转换"08""09"字符串报错原因咨询

问题原因

Ruby的Integer()方法在处理带前导零的纯数字字符串时,默认会按照*八进制(基数为8)*规则解析输入:

  • 八进制的合法数字范围为0~7,因此"01"到"07"都是合法的八进制数值,可以正常转换为对应的十进制整数
  • "08"、"09"中包含八进制不支持的字符8、9,不符合八进制语法要求,因此会抛出ArgumentError异常。

解决方案

如果需要强制按照十进制规则转换带前导零的数字字符串,显式传入第二个参数10指定解析基数即可:

irb(main):001:0> Integer("08", 10)
=> 8
irb(main):002:0> Integer("09", 10)
=> 9

内容的提问来源于stack exchange,提问作者Sig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:24:03