给定来自用户输入的字符串,我想将其转换为 aFixnum
或者Integer
该字符串是否为有效的 int。如果字符串是浮点数,我不想转换为 int。如果失败,我想尝试将字符串转换为Float
. 如果字符串不是其中任何一个,我打算只引发一个异常。
似乎String#to_i
只是截断任何Float
值而不是提供任何类型的错误。我知道我可以做一些正则表达式来确定 a 是否是有效的 int,但如果 a有数字以外的任何内容String
,似乎应该有一些内置的转换失败。String
我错过了什么吗?
例如。我想要这样的失败而不是返回1
irb(main):092:0> "1.4".to_i
=> 1
irb(main):093:0> "1.4e5".to_i
=> 1