【MySQL】切り捨てたら1円アップ
MySQL4環境にて発生。
次のSQLをMySQL4環境で実行
select 5800, 5800*0.05, ceil(5800*0.05), ceil(5800*5/100), ceil(5800*0.05 - 0);
結果
+------+-----------+-----------------+------------------+---------------------+ | 5800 | 5800*0.05 | ceil(5800*0.05) | ceil(5800*5/100) | ceil(5800*0.05 - 0) | +------+-----------+-----------------+------------------+---------------------+ | 5800 | 290.00 | 291 | 290 | 290 | +------+-----------+-----------------+------------------+---------------------+
比較的高い頻度で困ったことが起きそうな現象です。
困った人が多くて修正されたのか、MySQL5では発生しませんでした。
0.05は2進数の小数にすると無限小数になるので、当たり前といえば当たり前の現象ともいえます。
2進数の小数表現 at softelメモ 2010年2月3日 15:51
[…] 【MySQL】切り捨てたら1円アップ […]