PHP

2013-12-08, php

PHPで通貨計算

PHPと通貨で検索すると某国の為替レート(誤検出を防ぐため国名は出しません)が出てきてしまいますね。しかし、その間違い結果を除外した後でも、決め手となりそうな情報がありません。しかし、Pythonの場合と同様に、普通の実数計算は浮動小数点形式で実行されることは確かなようです。

<?php
echo 0.1 + 0.1 + 0.1 - 0.3;
echo "\n";
echo (1 + 1 + 1 - 3) / 10.0;
echo "\n";
echo bcsub(bcadd(bcadd('0.1','0.1'),'0.1'),'0.3');
echo "\n";
実行結果
5.5511151231258E-17
0
-0

精度がはっきりしている場合は、なるべく整数でとりまわして計算する。それが難しければBC Math関数を利用して演算する、というのが現実的な解法でしょうか。BC MathはCentOSの標準のPHPライブラリには含まれていないようなので、追加でインストールする必要があります。

# yum -y install php-bcmath

参考URL

この記事は役に立ちましたか?