Ответ 1
Это работает в целом:
ceil(number*10)/10
Итак, в Ruby это должно выглядеть так:
(number*10).ceil/10.0
Мне нужно округлить до ближайшей десятой. Мне нужно ceil
, но с точностью до первого десятичного знака.
Примеры:
10.38 would be 10.4
10.31 would be 10.4
10.4 would be 10.4
Итак, если это какая-то сумма за десятую часть, она должна быть округлена.
Я запускаю Ruby 1.8.7.
Это работает в целом:
ceil(number*10)/10
Итак, в Ruby это должно выглядеть так:
(number*10).ceil/10.0
Метод Ruby round может потреблять точность:
10.38.round(1) # => 10.4
В этом случае 1 округляет вас до ближайшей десятой.
Если у вас есть ActiveSupport, он добавляет круглый метод:
3.14.round(1) # => 3.1
3.14159.round(3) # => 3.142
Источник выглядит следующим образом:
def round_with_precision(precision = nil)
precision.nil? ? round_without_precision : (self * (10 ** precision)).round / (10 ** precision).to_f
end
Чтобы округлить до ближайшей десятой в Ruby, вы могли бы сделать
(number/10.0).ceil*10
(12345/10.0).ceil*10
# = > 12350
(10.33 + 0.05).round(1) # => 10.4
Это всегда округляется как ceil, сжато, поддерживает точность и без глупости /10 * 10.0.
Например. округлить до ближайшей сотой:
(10.333 + 0.005).round(2) # => 10.34
С точностью до тысячных
(10.3333 + 0.0005).round(3) # => 10.334
и т.п.