在DSP28377D中对两个float型变量进行赋值,连上仿真器后运行查看变量的值和赋的初值有差异,如下图上面为赋值,下面为CCS中查看的变量值,一个是小数点第11位有差异,一个是第8位有差异,这个是啥原因?另外float型的精度是到小数点后几位?
Susan Yang:
我会在测试和确认后给您回复
Susan Yang:
建议您将其定义为long double类型
float f_var_test3 = 0.00156833408328098454;
float f_var_test4 = -0.9968633318334378934;
long double f_var_test5 = 0.00156833408328098454L;
long double f_var_test6 = -0.9968633318334378934L;
测试结果如下
更多信息请参考
http://mcu.eetrend.com/content/2017/100007381.html
之前这个文档是在E2EChina上的,后面链接失效了
user4842559:
回复 Susan Yang:
是不是可以简单理解为float是单精度浮点型,其表示的有效数据位超过7位就会取舍,改为long double 后就是双精度浮点型了,其表示有效数字为超过16位就会取舍。
user4842559:
回复 Susan Yang:
好的,谢谢
Susan Yang:
回复 user4842559:
很高兴能帮到您