Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP四舍五入给出00作为答案_Php - Fatal编程技术网

PHP四舍五入给出00作为答案

PHP四舍五入给出00作为答案,php,Php,我有一个简单的PHP代码,可以将一个浮点数四舍五入到小数点后5位,但是我得到了一个奇数,结果是00 这是我的代码: $sum = (2*pi()) / (rand(5,10)*(0+1)*60*60*1000); echo $sum.'<br/>'; echo round($sum,5); 我将假设这是round()的预期行为,但我不确定如何解决此问题,以便将数字保留到小数点后5位 这个问题的原因是什么?我应该如何解决它?您的数字精确到小数点后5位2.90888208666E-7非

我有一个简单的PHP代码,可以将一个浮点数四舍五入到小数点后5位,但是我得到了一个奇数,结果是
00

这是我的代码:

$sum = (2*pi()) / (rand(5,10)*(0+1)*60*60*1000);
echo $sum.'<br/>';
echo round($sum,5);
我将假设这是
round()
的预期行为,但我不确定如何解决此问题,以便将数字保留到小数点后5位


这个问题的原因是什么?我应该如何解决它?

您的数字精确到小数点后5位<代码>2.90888208666E-7非常小(从结尾的
E-7
可以看出,在小数点后五位,它四舍五入为0

结尾的
E-7
实际上是有意义的!这是一种表达
2.90888*pow(10,-7)
2.90888*0.000001
的方式。请参阅或

因此,您拥有的数字是
0.000000290888208666
,(给予或接受零;)。这个数字太小了,如果你四舍五入到5位小数,它就会变成0

此外,浮点仍然是一个浮点,如果回显浮点,则不会显示不相关的零。 要显示它们,您需要将数字格式化为字符串,并告诉PHP您需要多少小数。你可以用这个

$output = round($sum, 5);
echo number_format($output, 5);

“您将数字保留到小数点后5位”+1它为什么要拆下2?当然是
2.9089
这个数字太小了,它四舍五入到零这个数字是
2.0…
为什么是
0.etc
?正如我在回答中所说的。您拥有的数字是
0.000000290888208666
,(给予或接受零;)。这个数字太小了,如果你四舍五入到5位小数,它就会变成0。注意末尾的
E-7
。它实际上是有意义的!这是说
2.90888*pow(10,-7)
2.90888*0.000001
的一种方式。看见
$output = round($sum, 5);
echo number_format($output, 5);