php 变量值的作用就像零

问题描述 投票:0回答:1

当我正在开发一个项目时,我遇到了一个错误,我无法理解为什么会发生这种情况。在我的代码中,我从 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
函数上。

此时我陷入困境,不知道如何解决这个问题,有什么想法吗?

php double
1个回答
1
投票

如果

echo $newnumber
8.5E-6
那么该数字的十进制数应该是
0.0000085

number_format() 将要显示的小数位数作为第二个参数(默认为 0)。由于您有一个带有一位小数的 x10-6 数字,因此您至少需要 7 位小数。

echo number_format($newnumber, 7);

将输出

0.0000085
© www.soinside.com 2019 - 2024. All rights reserved.