【发布时间】:2018-11-15 21:49:59
【问题描述】:
我在运行 Windows 10 Home Single Language 64 位操作系统的机器上使用 PHP 7.2.5(使用最新版本的 XAMPP 安装) .
据我所知,在 PHP 中,整数和浮点数的大小取决于平台。
PHP 提供了一个预定义的常量PHP_INT_SIZE 来查找整数的大小,但它没有提供任何此类常量来查找浮点数的大小。
那么,我的问题是如何在 PHP 中找出浮点数的大小?
附: :我已经推荐了Previously Asked Question,但无法为我的问题找到可靠、高效和令人满意的解决方案。在这个问题的答案结束时,答案的作者做出了以下假设
我认为“平台相关”意味着它在 32 位平台上使用 4 个字节(传统的浮点大小),在 64 位和更大的平台上使用 8 个字节(传统的双精度)。
我认为这是模糊的,因为它没有更多相关的证据或证据。
【问题讨论】:
-
来自docs:浮点数的大小取决于平台,尽管最大约 1.8e308 和大约 14 位十进制数字的精度是一个常见值(64 位IEEE 格式)。 这对我来说,32 位浮点数确实是 4 个字节,而 64 位浮点数是传统的双精度数,因此是 8 个字节。不幸的是,您发现它含糊不清,真的无能为力:p
-
@Loek :我从文档中阅读了相同的声明。您再次假设 PHP 中的 float 大小。通过预定义的常量 PHP_INT_SIZE 我可以获得整数的大小作为输出。如果是浮点数,我也希望浮点数的大小作为输出,而不是其他人做出的某种假设的形式。如果您能以某个程序的输出形式向我提供浮点数的大小,我会相信您的假设。
-
@Loek:平台相关并不意味着 32 位架构上的 32 位和 64 位架构上的 64 位。浮点值的处理方式通常与整数不同,包括不同的寄存器和不同的指令,并且不像整数那样与架构宽度密切相关。更可能根据处理器的速度和浮点运算的带宽或对精度的期望/需求来做出决定。
-
请注意,从 php 7.2 开始,就有 这样一个常量:3v4l.org/QpHOI
-
@EricPostpischil 很公平,好点。
标签: php floating-point integer size constants