Подтвердить что ты не робот

Ruby Always Round Up

Я чувствую себя сумасшедшим. Я хотел бы объединить все фракции до ближайшего целого числа.

Например, 67/30 = 2.233333333334. Я хотел бы округлить это до 3. Если результат не является целым числом, я никогда не хочу округлять, только вверх.

Вот что я пытаюсь:

puts 67/30.to_f.ceil

Вот примеры того, что я ищу:

  • 67/30 = 3
  • 50/100 = 1
  • 2/2 = 1

Любые идеи? Большое спасибо!

4b9b3361

Ответ 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