BigDecimal
Rubyの勉強
可変長浮動小数点計算機能ライブラリ、任意の有効桁数を指定できる。
数字はStringで与える。下では結果もStringで取得。
require 'bigdecimal' require 'bigdecimal/math' include BigMath def my_div(a, b) (BigDecimal(a.to_s,100) / BigDecimal(b.to_s)).to_s end def my_sqrt(a) sqrt(BigDecimal(a.to_s), 100).truncate(50).to_s("F") end p my_div(1,3) # => "0.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333E0" p my_sqrt(2) # => "1.41421356237309504880168872420969807856967187537694" p Math::PI(50).to_s # => "0.3141592653589793238462643383279502884197169399375105820974944592309049629352442819E1"