如何让数字不以科学的形式显示出来?
我要将浮点数数组写入文件
<?php
$x=[0.000455,0.000123,0.00005690330203];
$fname='test.txt';
$str='';
foreach($x as $elem){
$str .= "$elem
";
}
file_put_contents($fname,$str);
?>
但在test.txt中,我看到
0.000455
0.000123
5.690330203E-5
我不希望浮点数以科学/指数形式显示,我希望它们保持原始形式, 此外,还有像12430120340这样的大整数 因此,如果我对浮点数使用特殊格式,如0.000123293304 那么它可能不适合大整数,也许把它们转换成字符串可能是个好主意?但如何做到呢?
解决方案
可以使用number_format
函数设置精度:
示例:
$mynum = 24.2837162893;
$mynum = number_format($mynum, 2);
echo($mynum);
// Outputs 24.28
因此,如果您决定希望所有数字都有10位小数,则只需使用$mynum = number_format($mynum, 10);
。
另请参阅sprintf()函数了解其他格式选项。
[编辑]
在您的特定示例中,您可以在以下位置使用此函数:
<?php
$x=[0.000455,0.000123,0.00005690330203];
$fname='test.txt';
$str='';
foreach($x as $elem){
$str .= number_format($elem, 5) . "
";
}
file_put_contents($fname,$str);
?>
正如在另一个答案中所述,浮点值本质上是不精确的。您必须确定在您的用例中,什么精度对您来说是重要的。
引用:http://php.net/manual/en/function.number-format.php
相关文章