在PHP和WordPress中显示没有指数形式的小数字

时间:2017-08-22 10:52:37

标签: php wordpress

是否可以显示没有指数形式的微小数字?

<?php 
$a=4;
$b=799999999999999;
$c=$a/$b;
echo $c;
?>

我在WordPress页面中使用此代码(启用PHP),它输出5.0E-15而不是0,000000000000005

我使用默认的Twenty Sixteen主题,没有自定义功能。

如何编辑上面的PHP代码以显示正确的数字?

1 个答案:

答案 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;

?>

(我删除了我的答案并转发,因为我不确定你是否收到我修改我的答案的提醒)