php的精确计算

<?php

/**

 * 精确加法

 * @param [type] $a [description]

 * @param [type] $b [description]

 */

function math_add($a,$b,$scale = '2') {

    return bcadd($a,$b,$scale);

}



/**

 * 精确减法

 * @param [type] $a [description]

 * @param [type] $b [description]

 */

function math_sub($a,$b,$scale = '2') {

    return bcsub($a,$b,$scale);

}


/**

 * 精确乘法

 * @param [type] $a [description]

 * @param [type] $b [description]

 */

function math_mul($a,$b,$scale = '2') {

    return bcmul($a,$b,$scale);

}


/**

 * 精确除法

 * @param [type] $a [description]

 * @param [type] $b [description]

 */

function math_div($a,$b,$scale = '2') {

    return bcdiv($a,$b,$scale);

}


/**

 * 精确求余/取模

 * @param [type] $a [description]

 * @param [type] $b [description]

 */

function math_mod($a,$b) {

    return bcmod($a,$b);

}


/**

 * 比较大小

 * @param [type] $a [description]

 * @param [type] $b [description]

 * 大于 返回 1 等于返回 0 小于返回 -1

 */

function math_comp($a,$b,$scale = '5') {

    return bccomp($a,$b,$scale); // 比较到小数点位数

}



echo math_add('3.445','3.444')."\n"; // 加 6.88

echo math_sub('3.445','3.444')."\n"; // 减 0.00

echo math_mul('3.445','3.444')."\n"; // 乘 11.86

echo math_div('3.445','3.444')."\n"; // 除 1.00

echo math_mod('3.445','3.444')."\n"; // 取模 0

echo math_comp('3.445','3.444')."\n";// 比较 1


echo math_add('3.445','3.444','3')."\n"; // 加 6.889

echo math_sub('3.445','3.444','3')."\n"; // 减 0.001

echo math_mul('3.445','3.444','3')."\n"; // 乘 11.864

echo math_div('3.445','3.444','3')."\n"; // 除 1.000

echo math_mod('3.445','3.444')."\n"; // 取模 0

echo math_comp('3.445','3.444')."\n";// 比较 1

?>


鼎云博客
  • 最新评论
  • 总共0条评论