目次

Float

定数

DIGFloat が表現できる最大の 10 進桁数
EPSILON1.0 + Float::EPSILON != 1.0 となる最小の値
MANT_DIG仮数部の Float::RADIX 進法での桁数
MAXFloat が取り得る最大値
MINFloat が取り得る最小値
MAX_10_EXP最大の 10 進の指数
MIN_10_EXP最小の 10 進の指数
MAX_EXP最大のFloat::RADIX 進の指数
MIN_EXP最小のFloat::RADIX 進の指数
RADIX指数表現の基数
ROUNDS丸めモード (-1: 不定、0: 0.0 の方向に丸め、1: 四捨五入、2:正の無限 大の方向に丸め、3:負の無限大の方向に丸め)

Tips

任意の桁で四捨五入する

Numeric - Rubyリファレンスマニュアルに書いてある。

class Numeric
  def roundup(d=0)
    x = 10**d
    if self > 0
      (self * x).ceil.quo(x)
    else
      (self * x).floor.quo(x)
    end
  end

  def rounddown(d=0)
    x = 10**d
    if self < 0
      (self * x).ceil.quo(x)
    else
      (self * x).floor.quo(x)
    end
  end

  def roundoff(d=0)
    x = 10**d
    if self < 0
      (self * x - 0.5).ceil.quo(x)
    else
      (self * x + 0.5).floor.quo(x)
    end
  end
end

if $0 == __FILE__
  x = 123.543
  puts x.roundoff(2)  # => 123.54
  puts x.roundoff(1)  # => 123.5
  puts x.roundoff(0)  # => 124.0
  puts x.roundoff(-1) # => 120.0
  puts x.roundoff(-2) # => 100.0
end

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS