Почему (1210 / 100) возвращает 12, а не 12.1?
чт, 02/08/2007 - 20:11 — spine
Если Вы делите 2 целых числа, Ruby вернет целочисленный результат. Любая ожидаемая дробная часть игнорируется. Это называется "целочисленное
деление". Чтобы получить более точный результат, по-крайней мере одно из чисел должно быть объектом класса Float.
1210 / 100 # -> 12 1210.0 / 100 # -> 12.1 1210 / 100.0 # -> 12.1 1210.0 / 100.0 # -> 12.1
В самом общем случае для получения точного результата деления a и b воспользуйтесь следующим способом:
a.to_f / b
Остаток целочисленного деления можно получить следующим способом:
remainder = 1210 % 100 # -> 10 quot, rem = 1210.divmod(100) # -> 12, 10
