PHP浮点数运算的问题

$a = 0.1;
$b = 0.7;
$c = 0.5;
$d = 0.9;
if ($a + $b == 0.8) {echo '==';} else {echo '!=';} // !=
if ($a + $c == 0.6) {echo '==';} else {echo '!=';} // ==
if ($a + $d == 1) {echo '==';} else {echo '!=';} // ==
if ($b + $c == 1.2) {echo '==';} else {echo '!=';} // ==

防坑攻略

1) 通过乘100的方式转化为整数加减,然后在除以100转化回来……

2) 使用number_format转化成字符串,然后在使用(float)强转回来……

3) php提供了高精度计算的函数库,实际上就是为了解决这个浮点数计算问题而生的。

4)任意精度数学函数

对于任意精度的数学,PHP 提供了支持用字符串表示的任意大小和精度的数字的二进制计算。

BCMath:BC 是 Binary Calculator 的缩写。

官方手册:http://php.net/manual/zh/book.bc.php

大家在使用前,请先确认是否已安装 bcmath



参考地址: https://www.cnblogs.com/hld123/p/14848530.html

posted on   春分夏至  阅读(28)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2018-07-18 PHP curl 请求中添加 Authorization token

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示