需求是财务那边提出的,我现在用的是这个 sprintf("%.2f", substr(sprintf("%.4f", $profits), 0, -2));但是像是 19.9997 要变成19.99就做不到了。
sprintf("%.2f", substr(sprintf("%.4f", $profits), 0, -2));
人生最曼妙的风景,竟是内心的淡定与从容!
JS中不就是这样做的吗?
$a= 19.9997;
echo floor($a*100)/100;
$pos = stripos(19.9997,'.'); echo substr(19.9997,0,$pos+3);
可以借助bcmath函数来处理
bcmul(19.9997, 1, 2)
可以考虑正则表达式
$arr = array(); $preg = 19.9997; $mattch = "/\w+.\w{2}/"; $result = preg_match($mattch,$preg,$arr); echo "<pre>"; print_r($arr); echo $result;
number_format
格式化成保留3位小数再去掉最后一个数字便是
使用number_format函数最为直接, $english_format_number = number_format($number, 2, '.', '');// 1234.57
详细用法访问php.net官网。
JS中不就是这样做的吗?
$a= 19.9997;
echo floor($a*100)/100;
可以借助bcmath函数来处理
bcmul(19.9997, 1, 2)
可以考虑正则表达式
number_format
格式化成保留3位小数再去掉最后一个数字便是
使用number_format函数最为直接, $english_format_number = number_format($number, 2, '.', '');
// 1234.57
详细用法访问php.net官网。