Ruby .to_i没有按预期返回完整的整数

Lef*_*fty 0 ruby

我的红宝石命令是

"980,323,344.00".to_i
Run Code Online (Sandbox Code Playgroud)

为什么返回980而不是980323344?

bit*_*ien 6

您可以这样做:

"980,323,344.00".delete(',').to_i
Run Code Online (Sandbox Code Playgroud)

您的方法调用to_i未按预期返回的原因在进行了解释,并引用了该方法:

返回将str中的前导字符解释为整数基数(2到36之间)的结果。有效数字后的多余字符将被忽略。

在您的情况下,多余的字符将是以结尾的逗号字符980,这是您看到980返回的原因