実際のスクリプトは長く$timesが色々な値をとるため、不用意に$max_getに整数以外を出力させないようにintを使っているのですが、この書き方は正しくないのでしょうか?
$times = 0.005;
$min_get = 4000;
$max_get = int( $min_get * (1 + $times) + 1 );
print $max_get;
4000×0.005=20
と考えたいんでしょうけれども
コンピューターは浮動小数点だから
小数点以下の数値は近似値しか扱えませんよ
実際には
4000×0.004999…=19.99999…
になってると思われます
https://dobon.net/vb/dotnet/beginner/floatingpointerror.html
2017/06/20 02:46:48> 例えば十進数の「0.1」を2進数に変換すると
に続く部分を参照のこと
ありがとうございます。とても参考になりました!
2017/06/20 02:57:07