首页 > 编程知识 正文

c++ float比较大小,float类型比较大小

时间:2023-05-03 10:59:15 阅读:227036 作者:3527

C语言中,float和double都属于浮点数。区别在于:double所表示的范围,整数部分范围大于float,小数部分,精度也高于float

举个例子:圆周率3.1415926535这个数字,如果用float来表示,最多只能精确到小数点后面的6位。而double大约能精确到小数点后面的15位左右。具体精确到几位,跟所用的编译器有关,但是各个编辑器编译器之间,也是相差不大的。

至于整数部分,float表示的整数部分的范围,就已经够大了,能表示到万亿级别,已经大到没边了。而double所表示的整数范围,大到更没边了。

实际开发中,除了个别高精领域,基本上,使用float就足够了。

我们可以用程序,实际测试一下。如下程序:

_______________________________________________

float num1 = 3.1415926535;

double num2 = 3.1415926535;

printf('num1 = %.10f , num2 = %.10fn' , num1 , num2);

_______________________________________________

上面这几行程序的运行结果如下图所示:

上图中,num1的结果中,只能精确到小数点后面第六位,也就是:3.141592, 第七位,本来是6,但是上图中的运行结果,却是7了。也就是说,float只能精确到小数点后面六位,在往后,数字就不精确了。但是,num2的运行结果,是正确的。这说明:double所能精确到的小数点位数,比float多很多位。

上面的程序,我们验证了,float所表示的小数的精度,小于double

还有一点需要注意,就是:float和double表示的是,实数。实数不仅仅是小数,还包括:科学计数法。

比如: 3.14乘以10的3次方,结果是:3140,这个结果并不是小数,而是在写科学计数法的时候,形式上是有小数的。但是这个数字本身是3140,不是小数。

如下面这个程序:

_______________________________________________

float num1 = 3.14E3;

double num2 = 3.14E3;

printf('num1 = %.0f , num2 = %.0fn' , num1 , num2);

_______________________________________________

程序运行结果如下:

上图中的运行结果,都是3140

所以,我们应该这样理解:float和double都能表示带有小数点的数,但是,带有小数点的数,并不一定是小数,还包括科学计数法。在C语言中,10的N次方,用EN来表示。如3.14乘以10的3次方,可以这样表示: 3.14E3,字母E可以是大写,也可以是小写。

如:这样的写法,也是可以的: 3.14e3

希望以上我的回答,能够帮助到您!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。