我需要四捨五入到最接近的十分之一。我需要的是ceil
,但精確到小數點後一位。四捨五入到最接近的十分之一?
例子:
10.38 would be 10.4
10.31 would be 10.4
10.4 would be 10.4
所以,如果它是過去一個完整的第十任何金額,應四捨五入。
我正在運行Ruby 1.8.7。
我需要四捨五入到最接近的十分之一。我需要的是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
如果你的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
這輪到最近的十分之一,而不是最接近OP的要求的十分之一。 – brittohalloran
圍捕在紅寶石最近的十分之一,你可以做
(number/10.0).ceil*10
(12345/10.0).ceil*10
#=> 12350
這是我做的,但我希望有這樣做原生方式,像綜合報道(1)或其他。 – mjnissim
你將如何完成這個小數點後兩位(如錢?)編輯:德皮。 (3.191 * 100).ceil/100.0給我3.2。這是正確的,3.20。只是沒有顯示額外的0. – gregblass