浮点型数据有时会丢失一部分的精度
例如:3*5.6*5 = 84 //float(84)
但是这个值用双精度打印出来就是 printf("%0.20f",3*5.6*5 ) =83.99999999999998578915
所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。需要说明的是,这不是PHP的问题,而是计算机内部处理浮点数的问题。
本文探讨了浮点型数据在计算中可能出现的精度丢失问题,并通过示例展示了即使简单的运算也可能导致数值上的微小偏差。强调了不应过分信任浮点数结果的精确度,并建议避免直接比较两个浮点数是否完全相等。
浮点型数据有时会丢失一部分的精度
例如:3*5.6*5 = 84 //float(84)
但是这个值用双精度打印出来就是 printf("%0.20f",3*5.6*5 ) =83.99999999999998578915
所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。需要说明的是,这不是PHP的问题,而是计算机内部处理浮点数的问题。

被折叠的 条评论
为什么被折叠?