广西两学一做网站,阿里国际网站官网入口,php网站开发路线,php建设网站后台文章目录 一、遇到的问题二、解决方案三、问题根因float和double的区别#xff1a; 总结-浮点数 一、遇到的问题
将NXP项目的代码移植到RH850F1K的项目上时#xff0c;程序运行异常#xff1a; u16Volt (uint16)((double)u16ADVal * (double)6.3) 执行到这一行程序就跑飞了… 文章目录 一、遇到的问题二、解决方案三、问题根因float和double的区别 总结-浮点数 一、遇到的问题
将NXP项目的代码移植到RH850F1K的项目上时程序运行异常 u16Volt (uint16)((double)u16ADVal * (double)6.3) 执行到这一行程序就跑飞了……
二、解决方案
①u16Volt (uint16)((float)u16ADVal * (float)6.3) ②u16Volt (uint16)(u16ADVal * 630 /100)——推荐使用
三、问题根因
RH850 F1K仅支持单精度浮点型运算
float和double的区别
①float单精度浮点数double双精度浮点数 ②在内存中占有的字节数不同单精度浮点数在单片机内存中占4个字节双精度浮点数在单片机内存中占8个字节 ③有效数字位数不同单精度浮点数有效数字8位双精度浮点数有效数字16位 ④数值取值范围不同单精度浮点数的表示范围-3.40E38~3.40E38 双精度浮点数的表示范围-1.79E308 ~1.79E308 ⑤在程序中处理速度不同一般来说CPU处理单精度浮点数的速度比处理双精度浮点数快 ⑥如果不声明默认小数为double类型所以如果要用float的话必须进行强转。
float a 1.23; //error编译报错
float a (float)1.23; //定义单精度浮点型变量
float f 1.23f; // 定义单精度浮点型变量
double d 1.23; // 定义双精度浮点型变量可以不加d或D后缀总结-浮点数
单精度浮点float可以精确到小数点后6位 双精度浮点double可以精确到小数点后12位 提示 C可以通过f或F后缀是编译器把浮点常量当做float类型比如2.3f和9.11E9F。 l或L后缀使一个数字成为long double类型比如54.3l和4.32e4L。建议使用L后缀因为字母l和数字1容易混淆 没有后缀的浮点常量为double类型。例sizeof(1.9) 8;
浮点二进制转换工具