在PHP中出现的科学记数法

时间:2012-10-26 15:32:35

标签: php configuration

  

可能重复:
  Show more digits in PHP

让我提供一些有关我的问题的背景信息。我们有一个旧的遗留应用程序正在迁移到另一台服务器。在新服务器中,我们发现长浮点数用科学记数法打印 - 在我们之前的服务器中并非如此。

E.g:

$num1 = 60000000000.0;
$num2 = 2000000000.0;
$sum  = $num1 + $num2;
echo $sum; //prints 6.2E+10 in new server but 62000000000 in old one..

现在,我知道我们可以使用number_format()printf()等来解决此问题。但是我的问题是这样的计算在应用程序中太多了,并且很难更改所有实例。

那么有人可以帮我解决我的情况吗?有全球解决方案吗?可以在php.ini或其他什么东西配置的东西?任何人都可以给我任何指示为什么这在旧服务器中工作正常但不是新的?可能导致此问题的服务器设置是什么?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

这取决于precision ini设置:

http://php.net/manual/en/ini.core.php#ini.precision

会有不同的结果,被限制在最顶层。您的数据作为一些随机系统和精度设置的示例(在该系统上默认为14):

 0: 6.0E+10     7: 6.2E+10        14: 62000000000
 1: 6.0E+10     8: 6.2E+10        15: 6.2E+10    
 2: 6.2E+10     9: 6.2E+10        16: 6.2E+10    
 3: 6.2E+10    10: 6.2E+10        17: 6.2E+10    
 4: 6.2E+10    11: 62000000000    18: 6.2E+10    
 5: 6.2E+10    12: 62000000000    19: 6.2E+10    
 6: 6.2E+10    13: 62000000000    20: 6.2E+10