Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > bigdecimalライブラリ > BigDecimalクラス > round

instance method BigDecimal#round

round(n) -> BigDecimal[permalink][rdoc]
round(n, b) -> BigDecimal

クラスメソッド BigDecimal.mode(BigDecimal::ROUND_MODE,flag) で指定した BigDecimal::ROUND_MODE に従って丸め操作を実行します。

[PARAM] n:
小数点以下の桁数を整数で指定します。
[PARAM] b:
丸め処理の方式として、BigDecimal.mode の第 1 引数と同じ 値を指定します。
[EXCEPTION] TypeError:
n に Fixnum 以外のオブジェクトを指定した場合に発 生します。

BigDecimal.mode(BigDecimal::ROUND_MODE,flag) で何も指定せず、 かつ、引数を指定しない場合は 「小数点以下第一位の数を四捨五入して整数(BigDecimal 値)」にします。

BigDecimal("1.23456").round   # => #<BigDecimal:2241e48,'0.1E1',9(36)>
BigDecimal("-1.23456").round  # => #<BigDecimal:2241cc0,'-0.1E1',9(36)>

以下のように引数を与えて、小数点以下 n+1 位の数字を操作することもできます。 n が正の時は、小数点以下 n+1 位の数字を丸めます(小数点以下を、最大 n 桁にします)。 n が負のときは小数点以上 n 桁目を丸めます(小数点位置から左に少なくとも n 個の 0 が並びます)。

BigDecimal("1.23456").round(4).to_f    # => 1.2346
BigDecimal("15.23456").round(-1).to_f  # => 20.0

2番目の引数を指定すると、BigDecimal.mode の指定を無視して、指定さ れた方法で丸め操作を実行します。

BigDecimal("1.23456").round(3,BigDecimal::ROUND_HALF_EVEN).to_f   # => 1.234
BigDecimal("1.23356").round(3,BigDecimal::ROUND_HALF_EVEN).to_f   # => 1.234

[SEE_ALSO] BigDecimal.mode