ローンの計算を一覧表でやるのもなんか間抜けなので、ケータイで出来ないもんかいなーと思って PHP でコードをちょろっと書いてみました。が、電卓で計算してみると1円だけ違うところがあるんですね(笑)。
よくよく調べてみると、下記の計算が期待通りになっていないのでした。
% php -r 'echo floor(450000*16.72/100);'ここでの正解は 75240 です。結果が整数の場合には誤差は関係ないと思っていたのですが、考えが甘かったようです。
75239
でもって面白いことに
% php -r 'echo 450000*16.72/100;'の場合は期待通り表示されます。でもって、
54240
% php -r '$a=450000*16.72/100;echo $a;'に関しても期待通りですが、
54240
% php -r '$a=450000*16.72/100;echo floor($a);'になると誤差がでます。うむむむ、期待通りに動くときがあるというのは echo で丸めが行われているからでしょうか?
75239
PHPに numeric 型があると良かったのですが、そういうわけにもいかないみたいなので、とりあえず
% php -r 'echo floor(450000/100*16.72);'と順番を変えてお茶を濁すのでした。 ←何の解決にもなっていない(笑) # とりあえず小さい桁で四捨五入してからfloor()すると試した範囲では期待通りに動くようです。
75240