本文介绍了如何让数字不以科学的形式显示出来?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要将浮点数数组写入文件
<?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
这篇关于如何让数字不以科学的形式显示出来?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!