在PHP中,我定义了一个长19位数字的变量,然后将其打印出来。但是它将变为指数NUmber,这在API使用中是不可接受的。我需要为NUMBER。这是一个问题的例子。
I’m not one of the lads,
adn它返回$a = 1435483000000072013;
echo $a;
我还尝试了以下函数,但是返回错误的数字
1.4354830000001E+18
这会给我function output($x) {
$f = sprintf('%0.08f', $x);
$f = rtrim($f,'0');
$f = rtrim($f,'.');
return $f;
}
echo output(1435483000000072013);
号码更改
那这是什么解决方案?
答案 0 :(得分:1)
冠军,PHP没有严格类型化的变量,但是在存储信息时,它仍然必须确定您的数字是int,float还是double。而且您的数字大于INT_MAX,因此它不适合整数格式。这意味着系统必须将其至少提高到一个浮点数,这就是从中获取指数格式的地方。
有关如何修复它,请参阅NoGray的解决方案。您的电话号码仍在存储中,只是因为您的电话号码太大而以不同的方式表示。
答案 1 :(得分:0)
您可以将number_format与空字符串一起用于千位分隔符 例如
$a = 1435483000000072013;
echo number_format($a, 0, '.', '');
答案 2 :(得分:0)
$a = 1.435483000000072013;
printf("%.18f",$a);