php 处理金额类型数据保留两位小数
我习惯用 number_format
函数,返回类型为字符串:
number_format($price, 2, '.', '');
后面两个参数依次为小数点符号和千分之符号(默认,
,所以需要手动去除)
还有一个专门处理字符串格式化输出的方法 sprintf
:
sprintf('%.'.$precision.'f', $price);
另附四舍五入方法 round ($val, $precision = 0, $mode = PHP_ROUND_HALF_UP)
,最后一个参数表示舍入模式。
需要注意的是,php 中的小数末尾零会被自动省略,round
函数精度参数表示最大精度,如果小数部分为 0,最终返回的会是一个整数。所以想要保留固定位数的小数部分,需要用以上两个函数进行二次修饰。
destoon 处理小数精度的函数:
function dround($var, $precision = 2, $sprinft = false) {
$var = round(floatval($var), $precision);
if($sprinft) $var = sprintf('%.'.$precision.'f', $var);
return $var;
}
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。