请教,php保留两位小数,但不四舍五入
发布网友
发布时间:2022-04-06 00:17
我来回答
共6个回答
热心网友
时间:2022-04-06 01:47
使用bc一类的函数,按字符串方式运算即可。
/**
* 数值非四舍五入保留两位小数
* @author Zjmainstay
* @website http://www.zjmainstay.cn
* @param $num 数值
* @return 保留两位小数
*/
function getNum($num, $scale = 2) {
$numStr = (string)$num . str_repeat('0', $scale);
//匹配精度前的数值
if(preg_match('#^\d+\.\d{0,'.$scale.'}#', $numStr, $match)) {
return $match[0];
} else {
return '0';
}
}
echo getNum(10.0253) . "\n";
echo getNum(0.5) . "\n";
热心网友
时间:2022-04-06 03:05
<?php
$num = 999.354364;
//echo sprintf("%.2f",substr(sprintf("%.3f", $num), 0, -2));
$arr=explode('.',$num);
$num1=substr($arr[1],0,2);
echo $arr[0].'.'.$num1;
热心网友
时间:2022-04-06 04:39
第一$num = 123213.666666;
echo sprintf("%.2f", $num);
第二
$num = 123213.666666;
echo sprintf("%.2f",substr(sprintf("%.3f", $num), 0, -2));
热心网友
时间:2022-04-06 06:31
bcadd() 你可以试试这个函数,bcabb(数字,保留的位数);
热心网友
时间:2022-04-06 08:39
先将变量转换成字符串,然后定位小数点位置,然后截取字符串
热心网友
时间:2022-04-06 11:03
$s=(int)($s*100)/100;