小数点以下の切り上げで誤差が出る

phpでの切り上げで知らない小数点以下が切り上げられていてハマったので…シンプルに消費税の計算なだけなんですけどね…

$i = 110 * 1.1;
echo ceil($i);

と書くと122と表示されるのはどうして?
121の数字が欲しいのですが…((+_+))

ということで機械のことは機械にってことでChatGPTに聞いてみたw


110 * 1.1 は 121.0 になるはずですが、
実際には 121.00000000000001 のような 微小な誤差 が浮動小数点計算により発生しています。


(´・∀・`)ヘー
知らなかったですwというかきちんと勉強していない”なんとなくやってる”プログラマなので…

消費税だから絶対に切り上げたいので、解決方法は以下のようにしなよ~とのアドバイス


$i = round(110 * 1.1, 2); // 小数第2位まで丸める
echo ceil($i);


ChatGPT!スゲー!

タイトルとURLをコピーしました