php浮点数计算比较及取整不准确解决方法

王朝学院·作者佚名  2016-05-25
窄屏简体版  字體: 小  |  中  |  大  |  超大  

php浮点数计算比较及取整不准确解决方法php有意思的现象,应该是很多编程语言都会有这样的现象。这个是因为计算机的本身对浮点数识别的问题.....

[php]view plaincopy$f=0.58;var_dump(intval($f*100*100));//结果5799var_dump((float)($f*100*100));//结果5800echo(int)((0.1+0.7)*10);//结果7echo(float)((0.1+0.7)*10);//结果8

[php]view plaincopy<?php$a=0.1;$b=0.7;var_dump(($a+$b)==0.8);//打印出来的值居然为booleanfalse[php]view plaincopy<?php$a=0.1;$b=0.7;var_dump(bcadd($a,$b,2)==0.8);//booltrue

在浮点数计算的时候,切记不要把浮点数转换成整形,否则会出现不可能预估的错误。

所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航