>  기사  >  백엔드 개발  >  php 如何用去尾法保留两位小数

php 如何用去尾法保留两位小数

WBOY
WBOY원래의
2016-06-06 20:12:052546검색

需求是财务那边提出的,我现在用的是这个
sprintf("%.2f", substr(sprintf("%.4f", $profits), 0, -2));
但是像是 19.9997 要变成19.99就做不到了。

回复内容:

需求是财务那边提出的,我现在用的是这个
sprintf("%.2f", substr(sprintf("%.4f", $profits), 0, -2));
但是像是 19.9997 要变成19.99就做不到了。

JS中不就是这样做的吗?

$a= 19.9997;

echo floor($a*100)/100;

<code class="php">$pos = stripos(19.9997,'.');
echo substr(19.9997,0,$pos+3);</code>

可以借助bcmath函数来处理

bcmul(19.9997, 1, 2)

可以考虑正则表达式

<code>$arr = array();
$preg = 19.9997;
$mattch = "/\w+.\w{2}/";
$result = preg_match($mattch,$preg,$arr);
echo "<pre class="brush:php;toolbar:false">";
print_r($arr);
echo $result;

number_format

格式化成保留3位小数再去掉最后一个数字便是

使用number_format函数最为直接, $english_format_number = number_format($number, 2, '.', '');
// 1234.57

详细用法访问php.net官网。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.