嵌入式基础C语言篇 二、浮点型(float、double)
·
- 概念:用来表达小数的数据类型
- 全称:floating point
- 语法:
- 单精度浮点型(float),典型尺寸是4字节
- 双精度浮点型(double),典型尺寸是8字节
- 长双精度浮点型(long double),典型尺寸是16字节
注意:开发中不建议频繁使用。(比如0.4不好用二进制表示)float f1 // 单精度 double f2 // 双精度 long double f3 // 长双精度
-
%f // 单精度浮点型 %lf // 双精度浮点型 %Lf // 长双精度浮点型 % 6.1f // 右对齐并占用宽度为6,保留一位的小数的浮点数 %-6.1f // 坐对齐并占用宽度为6,保留一位的小数的浮点数 %e,%E // 转换浮点数为十进制指数记法。 // 比较少用 如:1234 == 1.234*10的3次方 %a,%A // 转换浮点数为十六进制记法。 // 基本不用 %g,%G // 转换浮点数为十进制小数或十进制指数记法,依赖于值和精度。 // 基本不用(2)、精度说明,在内存中的存放:
-
公式:

- 说明:
-
s表示符号位,当例子S=0,值为正数;当S=1,值为负数。
M表示有效数字,大于等于1,小于2。
E表示指数位。
-
注意:
-

请填写float与“零值”比较的 if 语句。
提示:这里“零值”可以是 0, 0.0 。例如
int变量n与“零值”比较的 if语句为:
if ( n == 0 )
if ( n != 0 )
以此类推。
- 请写出 float x 与“零值”比较的 if 语句:不可将浮点型变量用"="或"!="与数字比较,应该设法转换为"<="或">=来比较
-
#include<stdio.h> int main(int argc, char const *argv[]) { //if ( float x == 0.0) //if ( float x != 0.0) float tmp = 0.000001; float f = 0; if(( f >= - tmp ) && ( f <= tmp ) ) {//不可将浮点型变量用"="或"!="与数字比较,应该设法转换为"<="或">=来比较 printf("f is zero\n"); } else { printf("f is not zero\n"); } }
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)