首页 > Web开发 > 详细

PHP 数字价格格式化,保留两位小数

时间:2019-12-28 18:45:37      阅读:87      评论:0      收藏:0      [点我收藏+]
$num=3.545;   
$precision=2;

1、php保留两位小数并且四舍五入,代码如下:

round($num, $precision)

2、php保留两位小数并且不四舍五入,代码如下

sprintf("%.2f",substr(sprintf("%.3f", $num), 0, -1))

3、四舍六入五成双(银行家舍入)

说明:四舍六入五成双(四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一)

function round3() {
$num=3.5551;
$precision=2;
$pow = pow(10, $precision);
//判断不进1的情况(五后为0且为奇)
if((floor($num * $pow * 10) % 5 == 0) && (floor( $num * $pow * 10) == $num * $pow * 10) && (floor($num * $pow) % 2 ==0) ){
$round = floor($num * $pow) / $pow;
} else {
$round = round($num, $precision);
}
return $round;
}

接下来看看这这几种的区别

银行家舍入:
五后非零就进一
echo round3(3.5551,3);   ===>  3.56
五后为零看奇偶,五前为偶应舍去,五前为奇要进一
echo round3(3.545,2);   ===>  3.54
echo round3(3.5451,2); ===> 3.55
echo round3(3.555,2); ===> 3.56
round函数:
round(3.545,2);         ===>  3.55
round(3.5451,2); ===> 3.55

PHP 数字价格格式化,保留两位小数

原文:https://www.cnblogs.com/jxxiaocao/p/12112366.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!