php

phpの浮動小数点の計算(丸め誤差への対応方法)

解説

プログラムで小数をともなう計算では注意が必要です。

理由として丸め誤差という誤差が出てしまう場合があるからです。

PHPでは以下の3つ方法で対策を行います。

  • BCMath関数を用いて計算する
  • 切り捨て処理前の計算結果を文字列にキャストする
  • 小数を伴う計算処理を固定小数点型を扱えるデータベースソフトウェアにゆだねる

BCMath関数はPHPのBCMath拡張モジュールをインストールすることで使えるようになる関数群です。

bcadd(加算)、bcsub(減算)、bcmul(乗算)、bcdiv(除算)などがあります。

プログラム例

実行結果

a1:7
a2:8
a3:8

参考文献

PHP本格入門[上]