"9.99".to_f
=> 999.0
Является ли это ожидаемым поведением? Как конвертировать «9.99» в 9.99Ruby string to_f ... ошибка?
"9.99".to_f
=> 999.0
Является ли это ожидаемым поведением? Как конвертировать «9.99» в 9.99Ruby string to_f ... ошибка?
В каком языке вы работаете? Мой угадывает в том, что он лечит "." как разделитель тысяч (который в данном случае находится не в том месте) и «,» как десятичная точка.
Попробуйте
"9,99".to_f
... но если это работает, это, вероятно, зависит от текущей культуре системы, и вы должны смотреть, чтобы найти закваску инвариантно способ преобразования.
@ Чирантан: Вопрос в том, что он делает на компьютере OP. Это поможет определить, является ли это проблемой, связанной с культурой. –
Какую версию Ruby вы используете?
«9.99» .to_f приводит к 9.99 для меня с использованием Ruby 1.8.6 на Windows.
Какая версия? Это работает как ожидается на 1.8.7.
irb(main):001:0> "9.99".to_f
=> 9.99
.
ruby -e "puts \"9.99\".to_f"
9.99
Может быть, некоторые противным камень или плагин Rails изменили Струнный # to_f поведение ...
Sure. Это конверсия, зависящая от культуры. Проверено на IronRuby 0,9
Это похоже, что это может быть ошибка рубин Enterprise Edition – 2009-11-12 19:26:45
http://groups.google.com/group/emm-ruby/browse_thread/thread/d327b07bbcb1351c – 2009-11-12 19:28:26
Уч. Из любопытства, это вызывает провал для rubyspec? –