2013-12-14 59 views
20

如何將整數舍入爲十的最接近倍數?Ruby 2.0 - 將整數舍入到最接近的倍數10

我試過integer.round(0.1)但它給出了最近的十進制數字。

實施例:3應該返回0,55應返回60.

是否有將圓至10最接近的倍數的方法?

+0

'10 *((x + 5)/ 10)'適用於非負整數。 –

回答

38

Integer#round有功能。

您將負數傳遞給round以表示您想要舍入的10位數字。例如:

整到最近的10:

55.round(-1) # => 60 

舍入到最近的100:

550.round(-2) # => 600 
+0

這將舍入到一個有效數字,而不一定是「十」的精度。 –

+0

哦...所以我讓數字_negative_。謝謝! –

+0

@AaronCronin我沒有得到你.. :( –

11

您可以10只劃分,圓,再乘以10:

nearest = (x/ 10).round * 10 
+0

'(15/10).round * 10'返回'10',但應該返回'20'。 –

+2

這只是因爲整數除法截斷小數,如果你除以'10.0',而不是它會舍入到20. –

+2

如果你想舍入無論什麼(這是我的要求),你可以做(​​x/10.0).floor * 10 – sixty4bit

相關問題