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

で従来通りの精度になるけど、なんか間違ってる気がする… すいません、数字苦手なんで間違ってたら指摘して下さい。