ruby1.9.2
せっかくrvmを入れたので、ruby1.9.2をインストールしてみた。
rvm install 1.9.2
で終わり。 ついでに、ちょうどWindows環境をWindows7に移行したので、Windowsのrubyも1.9.2(x64)にしてみる。 と言ってもWindows上で開発はやらないんだけど。
さて、自作のスクリプトを1.9.2で動かしていて、Floatの扱いでちょっとハマった。 超既出っぽいけど、1.9.2はFloatの精度が違うので、例えば
puts (32.3-26.8)/2 #=> 2.7499999999999982
になったりする。
require "bigdecimal"
x = BigDecimal::new("32.3")
y = BigDecimal::new("26.8")
z = (x-y)/2
puts z.to_f
で従来通りの精度になるけど、なんか間違ってる気がする… すいません、数字苦手なんで間違ってたら指摘して下さい。