PHP浮点数的精度
2024-10-12 11:50:15
在百度知道上看到这么一个问题
var_dump((0.3-0.2)==0.1);
结果是:false
后来查查手册,原来是浮点数的精度问题。那么0.3-0.2-0.1等于多少呢,结果:2.7755575615629E-17
如果真的涉及到浮点数的比较,可以这样,设计一个精度,就可以比较了。
$ps = 2.7755575615629*pow(10,-16);
$_ps = -2.7755575615629*pow(10,-16);
$flags = "false";
if((0.3-0.2-0.1)<$ps&&(0.3-0.2-0.1)>$_ps)
{
$flags = "true";
}
echo "0.3-0.2==0.1 is $flags"
另外可以是gmp函数
那么上面的算式我们应该改写为
<?php
$a = 0.1;
$b = 0.7;
var_dump(bcadd($a,$b,2) == 0.8);
//true
最新文章
- RabbitMQ + PHP (二)AMQP拓展安装
- 【积累篇:他山之石,把玉攻】解决XP 系统 .Net Framework 4安装时出现严重错误 (0x80070643)
- JS获取屏幕高度(转)
- CSS3图片缩放
- 应用框架的设计与实现——.NET平台(10 授权服务.CodeAccessSecurityAttribute)
- hadoop-2.7.3 在windows环境下安装(无需Cygwin)
- C中如何调用C++函数、类内函数 \混编\链接
- HDNOIP201206施工方案
- 将单链表的每K个节点之间逆序
- java学习之内省
- 关于myeclipse8.6的优化设置
- [再寄小读者之数学篇](2014-06-20 求极限---Jordan 不等式的应用)
- 自己编写的Shell
- MySQL安装步骤详解
- 为什么CPU的主频止步于4GHz?
- centos7配置yum源
- 012-- mysql的分区和分表
- 【Gson】简介 文档 基本使用 示例
- Windows 10恢复Shift+右键打开命令提示符窗口
- 设置WebApi里面命名空间参数