余剰
計算結果がおかしいと思ったら、余剰で変なことになってた。簡単な例として、「5.0を1.5で割った余り」っていうのを示すと、JavaScriptの場合
js> 5.0 % 1.5 0.5
なんだけど、Perlだと
> perl -le "print 5.0 % 1.5" 0
なのですね。このせいで変な結果になってました。とりあえずは
> perl -MMath::BigFloat -le "print Math::BigFloat->new('5.0')->bmod('1.5')" 0.5
これで回避。まあ、スクリプトの中では必要な範囲だけのブロックを作って、中でuse bignum;
してるので、実際にこう書いてるわけじゃないけど。