Как преобразовать десятичные значения с плавающей запятой в целые числа в 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