c语言整数小数字节,C语言编程第23讲——深度解析float类型

本文探讨了为何不应直接使用==操作符比较C语言中的float类型数据,通过浮点数的定点与浮点表示、存储方式(IEEE754标准)的解析,解释了浮点计算的精度损失问题,强调了浮点类型不仅用于表示小数,还用于表示大数。
摘要由CSDN通过智能技术生成

a26506a414b9f025c4bf064aade5c756.png

1、为什么对float类型数据进行比较时,不要用==操作符?

计算机专业的朋友,在学习C语言的float和double类型、Pascal语言的real类型,或者其他语言的浮点数类型时,都会被告诫:千万不要对两个浮点类型的数据进行是否相等的比较。

为什么呢?

首先,我们看下面的程序:

#include int main(){ float f1 = 3; float f2 = 3; if (f1 == f2) { printf("equal!\n"); } else { printf("not equal!\n"); } return 0;}

你推测一下,程序的运行结果是什么?可能有部分人认为结果是not equal,但程序运行的结果却是:

equal!

既然float数据之间可以使用==操作符,但为什么都不推荐这样做呢?

我们继续看看下面的程序:

#include int main(){ float f1 = 1.25; f1 = f1 + 1.26; if (f1 == 2.51) { printf("equal!\n"); } else { printf("not equal!\n"); } return 0;}

这个程序&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值