php是否支持64位ieee浮点数

时间:2014-04-15 10:32:36

标签: php

我对这个话题进行了深入的研究。但这个问题并不清楚。任何人都可以帮我解决这个问题。 http://www.php.net/manual/en/language.types.float.php 没有正确描述这个链接。

2 个答案:

答案 0 :(得分:4)

是的。


来自PHP手册..

  

整数的大小是平台相关的,尽管是最大值   大约20亿是通常的值(32位签名)。   64位平台的最大值通常约为9E18。 PHP确实如此   不支持无符号整数。可以使用确定整数大小   常量PHP_INT_SIZE,使用常量的最大值   自PHP 4.4.0和PHP 5.0.5以来的PHP_INT_MAX。

还..

  

如果浮点数超出整数的边界(通常为+/- 2.15e + 9   在32位平台上= 2 ^ 31,在64位平台上+/- 9.22e + 18 = 2 ^ 63),结果是不确定的,因为浮点数没有   足够的精度来给出精确的整数结果。没有警告,甚至没有   发生这种情况时会发出通知!

从PHP手册的内部链接到第三方网站......

  

PHP是动态类型,并且经常会隐式转换   字符串和浮点数(与平台有关,但是   通常 IEEE 64位值)。要强制值为浮点值,   在数值上下文中评估它:$foo = 0 + "10.5";

但是如果你想要使用浮点数和精度,你需要使用GMP函数。

答案 1 :(得分:2)

值存储在https://github.com/php/php-src/blob/master/Zend/zend.h#L322

对于浮动使用双重类型。 Size of float and double

所以,php支持64位ieee浮动。