BCMath任意精度数学関数 |
|
| PHP には、BCMath 任意精度数学関数という関数群が用意されている。これは、10進数表記された数字に対して任意精度の演算を提供するものである。 | |
サンプル・プログラム |
|
サンプル・プログラムの解説 |
|
|
0001: <?php |
|
|
サンプル・プログラムを実行すると、結果は、期待したとおりの 702100 となった。 まず、関数 bcscale で有効桁数を指定する(8行目)。関数 bcscale は任意精度の乗算である(12行目)。 ところが、今度は循環小数の計算で問題が起きてしまう。 除算を行う関数 bcdiv の段階(18行目)で、変数 $x には有効桁数 10 桁の 10進数――0.3333333333――が代入される。このため、次の乗算の段階(20行目)で、0.9999999999 となってしまう。 関数 printf の修飾子 %d や %f を %s に変更してもらえれば、このあたりの内部状況がよく分かるだろう。 |
(
この項つづく)
|
|
|
|
|
2006年12月09日 作成
2009年06月27日 更新
Copyright by studio pahoo, (C)2009
(※)本ページはリンクフリーですが、複製・転載時にはご一報ください。 ★本ページへのご意見・ご質問・お便りは、ここをクリックしてください。 |