Округление числа с плавающей точкой до ближайшего целого числа в рубине - PullRequest
59 голосов
/ 03 декабря 2010

Если у меня число с плавающей запятой 49,967, и я делаю .to_i, оно уменьшит его до 49, что для моего использования анализа дискового пространства .967 составляет более 900 МБ пространства, которое не будет учитываться на экранах.1002 * Есть ли функция для округления чисел до ближайшего целого числа, или я должен был бы сам определить это так:

class Float
  def to_nearest_i
    (self+0.5).to_i
  end
end

, чтобы я мог тогда сделать:

>> 5.44.to_nearest_i
=> 5
>> 5.54.to_nearest_i
=> 6

1 Ответ

112 голосов
/ 03 декабря 2010

Попробуйте Float.round.

irb(main):001:0> 5.44.round
=> 5
irb(main):002:0> 5.54.round
=> 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...