Ruby Always Round Up
Я чувствую себя сумасшедшим. Я хотел бы объединить все фракции до ближайшего целого числа.
Например, 67/30 = 2.233333333334. Я хотел бы округлить это до 3. Если результат не является целым числом, я никогда не хочу округлять, только вверх.
Вот что я пытаюсь:
puts 67/30.to_f.ceil
Вот примеры того, что я ищу:
- 67/30 = 3
- 50/100 = 1
- 2/2 = 1
Любые идеи? Большое спасибо!
Ответы
Ответ 1
Проблема в том, что вы в настоящее время вызываете ceil
на 30.to_f
. Вот как это оценивает Ruby:
(67)/(30.to_f.ceil)
# .ceil turns the float into an integer again
(67)/(30.0.ceil)
# and now it just an integer division, which will be 2
67/30 # = 2
Чтобы решить эту проблему, вы можете просто добавить скобки:
puts (67/30.to_f).ceil # = 3