2013-12-14 14 views
20

どのように整数を10の最も近い倍数に丸めますか?Ruby 2.0 - 10の最も近い倍数に整数を丸める

私はinteger.round(0.1)を試しましたが、最も近い小数点以下はです。

例:0、55、10の最も近い倍数に丸めます方法はあります60

返す必要があります3返す必要がありますか?

+0

'10 *((x + 5)/ 10)'は、負でない整数に対しても機能します。 –

答えて

38

Integer#roundには機能があります。

roundに負の数値を渡して、丸めたい10の位を表します。たとえば:最寄り10へ

ラウンド:

55.round(-1) # => 60 

最も近い100に丸める:

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

これは1桁の有効数字に丸められ、必ずしも「数十」の精度にはなりません。 –

+0

ああ...だから私は数字を_negative_にする。ありがとうございました! –

+0

@AaronCronin私はあなたを取得しませんでした.. :( –

11

あなたは、10で割るラウンド、その後、10を掛けすることができます

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

'(15/10)。around * 10'は' 10'を返しますが、 '20'を返すはずです。 –

+2

これは小数点以下を切り捨てた整数の除算のためです。代わりに '10.0'で割り算すると20に丸めます。 –

+2

何か(これは私の要件です)を切り捨てたい場合は、x/10.0).floor * 10 – sixty4bit

関連する問題