关于浮点数的使用,有个误区

概念

浮点型(又称实型)数据分为单精度(float)、双精度(double)和长双精度(long double)3种,在Visual C++ 6.0中,对float提供6位有效数字,对double提供15位有效数字,并且float和double的数值范围不同。对float分配4个字节,对double和long double分配8个字节。
表中类型标识符一栏中,方括号[ ]包含的部分可以省写,如short和short int等效,unsigned int和unsigned等效。

浮点数是个不精确数字,不能用于做逻辑比较

比如:

float f;

...

if(f==0.5)

{...}

f经过运算,尤其是经过除法运算,在数学上是0.5,但C++处理完后不一定是0.5,可能是0.50000000000000004或者其他数。

这是因为浮点数通常采用IEEE 754标准来表示,该标准使用二进制表示的浮点数,其中小数点的位置是固定的,这就导致了无法精确表示某些十进制数。

if这个逻辑判断也不会为1,大概率if下面的语句也永远都无法执行到。所以代码里永远都别写这类判断语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值