15. 1月 2011 · Write a comment · Categories: Ruby

せっかく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

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>