c++两个浮点值的相等性测试

浮点数有限制的精度,涉及浮点数的计算会导致舍入误差。因此两个浮点数之间的相等性测试是不可靠的。如:
double x=1.0-0.1-0.1-0.1-0.1-0.1;
这里不完全是0.5,但非常接近0.5.所以,可以通过比较两个数之间的差距是不是小于一个临界条件来比较他们是否足够接近。如:|x-y|<epsilon,epsilon是一个非常小的数值(即为高数中的无穷小)如:
const double EPSLION=IE-14;
double x=1.0-0.1-0.1-0.1-0.1-0.1;
if(abs(x-0.5)<EPSLION)
cout<<“x is approximately 0.5”<<endl;
将显示:
x is appromately 0.5
cmath库中的函数abs(a)可以用来返回一个数a的绝对值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值