PHP中的精確計算bcadd,bcsub,bcmul,bcdiv


引言:一定要確保數據的准確性。這是一個好的程序員的基本素養。

<?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
?>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM