用19位的PHP数字更改为指数数字

时间:2018-07-07 04:12:38

标签: php

在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); 号码更改

那这是什么解决方案?

3 个答案:

答案 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);