详解!带你了解php浮点数(float)

在PHP中,浮点数类型称为“float”或“double”。

详解!带你了解php浮点数(float)  第1张

从 PHP7.4.0 开始,数字可以用下划线分隔,以便于阅读。

详解!带你了解php浮点数(float)  第2张

可以处理不带小数点的格式、带小数点的格式和指数符号格式的数据类型。

可以存储的数据大小取决于运行程序的平台。

通常最大值为“1.8x10 的 308 次方,精度约为 14 位小数。

浮点数可以处理大量位数的数据,但数值精度可能存在误差。

当计算机在内部将一个数字转换二进制数字时,它必须无限期地“四舍五入”该值,这会导致数字出现一些错误。

例如:floor((0.1+0.7)*10),结果应该为“8”,但实际结果显示为“7”。

这是因为截断前的数字在内部是一个数字,例如“7.9999999999999991118...”。

因此请勿执行精确计算或比较十进制数。

如果要进行高精度计算,请使用任意精度的数学函数或gmp 函数。

详解!带你了解php浮点数(float)  第3张

从字符串转换为浮点数时,如果字符串是数字格式字符串,则转换为数值。

如果不是数字格式,它将被转换为 0。

从字符串以外的类型转换为float时,先转换为int类型,再转换为float类型。

正如我们上文所提到的比较十进制数存在问题。

这是因为在内部表示数字时会发生错误。

如果计算得出的值不能表示为数字,则表示为“ NaN ”。

比较中不应使用 NaN,因为将 NaN 与其他值或与 NaN 进行比较也会导致错误。

我们可以使用 is_nan() 函数来检查 NaN。

本文来源:词雅网

本文地址:https://www.ciyawang.com/php-float-61.html

本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。

相关推荐