Categories

Элегантный код. Округление до n-го знака после запятой.

Не первый раз натыкаюсь в коде на округление до 3-го знака после запятой таким способом

require 'active_support'
# ...
(object.to_f*1000).round/1000.0

Я не даром отметил require ‘active_support’, если бы этого не было выше по коду — этой заметки не было бы.

Дело в том, что ActiveSupport расширяет метод Float#round, добавляя в него дополнительный аргумент precision, и в случае если он задан, он делает то же самое, что и код выше, но итоговый код намного понятнее.

object.to_f.round(3)

P.S. ActiveSupport много чего еще добавляет — хватит на большую статью. Вместо изобретения велосипедов почитайте исходники того, чем пользуетесь.

2 comments to Элегантный код. Округление до n-го знака после запятой.

  • Это ведь в ActiveSupport к целым числам добавляются методы bytes, kilobytes и пр.? Или на уровне Ruby?

  • pahanix

    Да, именно там active_support-2.3.2/lib/active_support/core_ext/numeric/bytes.rb

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>