一、打印float类型
%f来表示float和double类型的数字%e来打印指数记数法的浮点数如果系统支持十六进制的浮点数,可以使用a和A分别来代替e和E打印long double类型要使用%Lf或%Le或%La来替代
#include<stdio.h>
int D12_1_showf_pt(void) {
float aboat
= 32000.0;
double abet
= 2.14e9;
long double dip
= 5.32e-5;
printf("%f can be written %e \n", aboat
, aboat
);
printf("And it's %a in hexademical,power of 2 notation\n", aboat
);
printf("%f can be written %e\n", abet
, abet
);
printf("%Lf can be written %Le\n", dip
, dip
);
return 0;
}
运行结果:
二、浮点值的上溢和下溢
当计算导致数字过大,超过了当前类型所能表达的范围时,就会发生上溢这种行为过去是未定义的,现在会赋值一个无穷大的值,printf该值的时候会显示inf或infinity。当计算导致数字过大,超过了当前类型所能表达的范围时,就会发生下溢C语言把损失了类型全精度称为低于正常值的浮点值。C库已经提供了用于检查计算是否会产生一个低于正常值的函数。
#include<stdio.h>
int D12_2_Floaterr(void) {
float a
, b
;
b
= 2.0e20 + 1.0;
a
= b
- 2.0e20;
printf("%f\n", a
);
return 0;
}
运行显示:
三、源码:
D12_1_showf_pt.cD12_2_Floaterr.chttps://github.com/ruigege66/CPrimerPlus/blob/master/D12_1_showf_pt.chttps://github.com/ruigege66/CPrimerPlus/blob/master/D12_2_Floaterr.c:https://blog.csdn.net/weixin_44630050博客园:https://www.cnblogs.com/ruigege0000/欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流,后台回复“礼包”获取Java大数据学习视频礼包