#ruby
#ruby
Вопрос:
Я хочу это:
'5.6535'.something => 56
'5.657'.something => 566
'5.3'.something => 530
'5'.something => 500
и так далее…
Мои «строковые» значения с плавающей точкой варьируются от 1..9
, и я хочу, чтобы они преобразовывались в целое число с тремя цифрами.
Спасибо!
Киран
Комментарии:
1. Каким должен быть результат, если входные данные
'56'
?2. Ваша строка всегда содержит только одну цифру перед разделителем?
3. Вы хотите, чтобы они были округлены или просто обрезаны в конце?
4. Да, это верно, оно варьируется от 1 .. 9, так что это должно сработать.
5. С каких это пор длина «56» составляет три цифры?
Ответ №1:
strings.each do |str|
puts (str.to_f * 100).floor
end
Замените round
or ceil
на floor
в зависимости от того, какое поведение вы хотите при округлении.
Комментарии:
1. Спасибо, это действительно так просто! Также нашел это: ruby-doc.org/core-1.9.3/String.html#method-i-to_f
2. Это не гарантирует трехзначность.
3. @MarkByers, конечно. вопрос нуждается в уточнении, если это имеет значение.
4. @MarkByers только что отредактировал вопрос. Спасибо, что указали на это.
Ответ №2:
(x '000').scan(/d/)[0,3].join('').to_i