Как преобразовать десятичные значения с плавающей запятой в целые числа в ruby

Как можно получить десятичные значения с плавающей точкой и превратить его в целое число в рубине?

Вот как далеко я зашел так далеко:

number = 12.55
decimal_length = number.to_s.split('.')[1].size #=> 2 
decimal = number.divmod(1)[1].round(decimal_length) #=> 0.55

Вот как я могу превратить десятичное число в целое число (55) таким образом, чтобы оно работало с любым числом в качестве ввода?

3 ответа

Решение

Может я недопонимаю? Но у вас есть это, вы просто делаете дополнительную работу.

number = 12.55
number.to_s.split('.')[1].to_i
#  => 55 

Ты можешь использовать number.to_i чтобы получить целое число. Чтобы получить десятичное значение, вы можете сделать number%1

    number.to_i => 12
    number%1    => 0.5500000000000007

Опубликовать немного поздно, но я надеюсь, что это может быть полезно

decimal_length = n.to_s.split(".").last.size # 2
decimal = (n.abs.modulo(1)*10**decimal_length).round # 55
Другие вопросы по тегам