stm32中的浮点数 | 您所在的位置:网站首页 › double怎么判断小数位数 › stm32中的浮点数 |
1. 浮点数原理简介
1.1 IEEE浮点表示
IEEE浮点标准用V=(-1)^s * M * 2^E的形式来表示一个数:符号(sign) s是符号位,1表示负,0表示正阶码(exponent) E的作用是对浮点数加权,这个权重是2的E次幂,取值范围(单精度-128~127,双精度-1024~1023)尾数(significand) M是一个二进制小数,它的范围是1~2-ε,或者是0~1-ε
参考C语言浮点数运算_ifreecoding_新浪博客 c语言头文件中定义是6位有效位数;c语言书籍中有6~7位的说法;根据参考里面的推理得出float型能精确地表示6位小数,超过6位小数就有些数不能表示了;如下图由上图可以看出,float型不能表示1.0000006这个数。而对于很大的数1234567890,它的二进制是0x4E932C06,实际的浮点数值是1234567936,也是高7位对得上。所以6位有效位数是比较精确的一个定义。 2. 浮点数使用注意事项 2.1 浮点数不能直接用等于号做比较错误示例: void func(float d1, float d2) { if(d1 == d2) { ; } }正确示例: #define LIMIT 1.0e-4 void func(float d1, float d2) { float diff = d1-d2; if(-LIMIT |
CopyRight 2018-2019 实验室设备网 版权所有 |