当我在一个项目上工作时,出现一个错误,我不明白为什么会发生。在我的代码上,我从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函数上。
这时我陷入困境,不知道如何解决这个问题,知道吗?
答案 0 :(得分:1)
如果echo $newnumber
为8.5E-6
,则该数字作为小数应为0.0000085
。
number_format()将要显示的小数位数作为第二个参数(默认为0)。由于您的x10-6数字为小数点后一位,因此您至少需要7个小数点后。
echo number_format($newnumber, 7);
将输出
0.0000085