当我正在开发一个项目时,我遇到了一个错误,我无法理解为什么会发生这种情况。在我的代码中,我从 API 读取了一个字符串,它是一个数字,但 API 返回的是字符串,所以我制作了
$mynumber = floatval($mynumber);
并且它工作得很好。但是,在我进行诸如 $newnumber = $mynumber * 1.5;
之类的数学运算后,我得到了一个奇怪的错误。
echo $newnumber;
返回数字“8.5E-6”,这完全没问题,表明
$newnumber
持有一个值。另外 echo gettype($newnumber);
也返回“double”,所以一切看起来都很完美。但每当我尝试将输入打印为
echo number_format($newnumber);
它只是在屏幕上打印“0”。另外,如果我尝试在curl上使用那个
$newnumber
变量,我在尝试调用API的网站上会收到错误,它说“值不能为0”,所以看起来该变量的值也是如此API 请求时传递为 0。
当我尝试在第一个变量上使用
number_format
时,在乘法之前,它会毫无问题地返回值,因此问题也不在 number_format
函数上。
此时我陷入困境,不知道如何解决这个问题,有什么想法吗?
如果
echo $newnumber
是 8.5E-6
那么该数字的十进制数应该是 0.0000085
。echo number_format($newnumber, 7);
将输出
0.0000085