#author("2022-07-08T15:23:36+00:00","default:src128","src128") #author("2022-07-08T15:23:53+00:00","default:src128","src128") *目次 [#sb60955c] #contents *Float [#te5bd41b] **定数 [#y1841ec6] ,DIG,Float が表現できる最大の 10 進桁数 ,EPSILON,1.0 + Float::EPSILON != 1.0 となる最小の値 ,MANT_DIG,仮数部の Float::RADIX 進法での桁数 ,MAX,Float が取り得る最大値 ,MIN,Float が取り得る最小値 ,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 [#baced806] **任意の桁で四捨五入する [#l2fe2979] [[Numeric - Rubyリファレンスマニュアル:http://www.ruby-lang.org/ja/man/html/Numeric.html#truncate]]に書いてある。 #pre{{ 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 }} **数値をカンマ区切りに [#i3979f5f] -Railsには便利なメソッドがあるがRubyはない。いろんな方法があるが正規表現の場合以下で変換できる。 num = 1234567890 p num.to_s.gsub(/(\d)(?=\d{3}+$)/, '\\1,') #=> "1,234,567,890" -他にもいろいろな方法あり。 [[Ruby - 3桁区切りの数字に変換(その2)! - mk-mode BLOG:https://www.mk-mode.com/blog/2020/04/19/ruby-convert-val-to-3-digit/]]