Ruby: преобразование строки с плавающей точкой в целое число

#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   '00­0').scan(/­d/)[0,3].­join('').to_i