是否可以显示没有指数形式的微小数字?
<?php
$a=4;
$b=799999999999999;
$c=$a/$b;
echo $c;
?>
我在WordPress页面中使用此代码(启用PHP),它输出5.0E-15而不是0,000000000000005
我使用默认的Twenty Sixteen主题,没有自定义功能。
如何编辑上面的PHP代码以显示正确的数字?
答案 0 :(得分:0)
您可以使用number_format功能。
<?php
$a=4;
$b=799999999999999;
$c=$a/$b;
$d = number_format($c, 15, ',', '');
echo $d;
?>
输出:0,000000000000005
但正如您所说,您需要一个更动态的解决方案,因为小数位不固定。所以这是我提出的解决方案。
长版:
<?php
$a=4;
$b=799999999999999;
$c=$a/$b;
$e = 0; //this is our output variable
if((strpos($c, 'E'))){ //does the result contain an exponent ?
$d = explode("-",$c); //blow up the string and find what the decimal place is too
$e = number_format($c, $d[1], ',', ''); //format with the decimal place
}else{
$e = $c; //Number didn't contain an exponent, return the number
}
echo $e;
?>
以前的代码缩短了一点:
<?php
$a=4;
$b=799999999999999;
$c=$a/$b;
$d = (strpos($c,'E')) ? number_format($c,explode("-",$c)[1],',','') : $c;
echo $d;
?>
(我删除了我的答案并转发,因为我不确定你是否收到我修改我的答案的提醒)