关于浮点数处理时的细节

浮点数细节

大小比较


bool Isequ(double x,double y){
    return (abs(x - y)) < eps;// eps 是自己设置的精度
}

提取整数位

因为机器中存储一些临界值的精度损失(比如1在机器中是0.9999999999,而5可能存的是5.000000000000001),所以单纯向上或者向下取整得到浮点数的整数位是十分危险的一件事。网上大多数方法都可能在边界上出现错误,在debug时简直是一场灾难,应当采用如下方法

int get_int(double x){
    if(abs(x - (int)(x + .5)) < eps) return int(x + .5);
    return int(x); 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值