PHPのBC Math

919 ワード

誰もがphpの弱いタイプを知っていて、自動変換です.だから
$exp1 = "1E5";
$exp2 = "2E4";
$ans3 = $exp1+$exp2;

依然として正しいのは12000に等しい.
ただし、数字が大きすぎる場合は、
$exp1 = 1500000003424344344;
$exp2 = 2400003435454244343;

$ans3 = $exp1+$exp2;

echo "3: $exp1 + $exp2 = $ans3\r
";

3:1.5000000034243 E+18+2.40034354542 E+18=3.90034388786 E+18ではありませんので、精度は限られています
では、大きな数字の演算はどうでしょうか.bcadd関数を参照してください.http://cn.php.net/manual/zh/function.bcadd.php
$exp1 = "15000000034243443449";
$exp2 = "24000034354542443435";

$ans3 = bcadd($exp1, $exp2, 3);

echo "3: $exp1 + $exp2 = $ans3\r
";

3:15000000344243443449+2400034354542443435=3900034388785886884.000で、結果は正しいです.ただし、$exp 1$exp 2には引用符を付ける必要があります.そうしないと、正しい結果は計算できません.
MBC Mathはまだたくさんありますが、http://cn.php.net/manual/zh/book.bc.php