PHP下浮点不精确的解决方案

PHP下浮点不精确的解决方案
你最近在做什么加减运算的问题是有一个不精确的浮点运算。它似乎说,解释语言确实存在浮点运算的问题。

首先,看一段代码:
< PHP
$ = 0.1;
$ = 0.7;
var_dump(($ + $ B)= = 0.8);
打印值为布尔false。

这就是为什么PHP手册有以下浮点数的警告信息:

警告

浮点数精度

很显然,一个简单的小数,如0.1或0.7,不能转换成一个内部二进制格式而不会丢失一点精度,这将造成混乱:例如,(0.1 + 0.7)* 10通常返回7,而不是8,因为结果的内部表示类似于7.9999999999。

这与一个事实,即不可能准确地表示有限小数位数的小数部分。例如,十进制1 3变成0 3333333…

所以千万不要相信浮点数的结果是精确到最后的,永远不要比较两个浮点数是否相等,如果你需要更高的精度,你应该使用任何精确的数学函数或GMP函数。

那么上述公式应改写为< PHP美元= 0.1;$ B = 0.7;var_dump(bcadd($,$,2)= = 0.8);这可以解决计算浮动点的问题。

以上是PHP给您带来的浮点操作的全部内容。我希望你能支持得更多。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部