Ответ 1
Как уже упоминалось, вы можете использовать 3.75.to_i
для получения целого числа.
Альтернативный способ получения остатка - использовать оператор %
, например.
3.75 % 1
Если у меня есть float как 3.75, как я могу разбить его на целое число 3 и float 0.75?
Должен ли я преобразовать float в строку, а затем разделить строку на ".", а затем снова преобразовать части в целые числа и поплавки или есть более элегантный или "правильный" способ сделать это?
Как уже упоминалось, вы можете использовать 3.75.to_i
для получения целого числа.
Альтернативный способ получения остатка - использовать оператор %
, например.
3.75 % 1
Вы можете использовать NumeriС# divmod с аргументом 1
для этого:
Возвращает массив, содержащий коэффициенты и модуль, полученные путем деления num на числовые.
a.divmod 1
=> [3, 0.75]
Если вы хотите получить точное значение, этот метод доступен для BigDecimal:
3.456.divmod 1
=> [3, 0.45599999999999996]
require 'bigdecimal'
div_mod = BigDecimal("3.456").divmod 1
[div_mod[0].to_i, div_mod[1].to_f]
=> [3, 0.456]