ruby 2.1.0 on Amazon Linux で小数点以下の割り算が0.0になる
偏差値を割り出す小数点以下のめんどうな計算なのだが
開発環境とプロダクションで、同じrubyバージョン、同じデータ同じロジックなのに、計算結果が異なる。
しかも、irbやコマンドベースで実行するとちゃんと出るという謎仕様。
式
(0.8125 - 1.14003927) * 0.5 / 0.62771825
開発環境(Mac OSX 10.10.3)
$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin14.0]
$ ruby -e "p (0.8125 - 1.14003927) * 0.5 / 0.62771825"
-0.2608967239681178
プロダクション(PaaS の sqaleを利用)
$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
#OSは Amazon Linux
$ cat /etc/issue
Amazon Linux AMI release 2012.09
Kernel \r on an \m
$ ruby -e "p (0.8125 - 1.14003927) * 0.5 / 0.62771825"
-0.2608967239681178
ただし、デバッグログだとこの計算式が0になる。 なんで?
#debg log
(0.8125 - 1.14003927) * 0.5 / 0.62771825 =>: -0.0
解決方法
なんか括弧でくくったら直った。
式
(0.8125 - 1.14003927) * (0.5 / 0.62771825)
#debg log
(0.8125 - 1.14003927) * (0.5 / 0.62771825)=>: -0.260896723968117847073377
しかも、小数点以下の桁が増えた。 rubyとOSとの問題?