在DSP28377D中对两个float型变量进行赋值,连上仿真器后运行查看变量的值和赋的初值有差异,如下图上面为赋值,下面为CCS中查看的变量值,一个是小数点第11位有差异,一个是第8位有差异,这个是啥原因?另外float型的精度是到小数点后几位?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在DSP28377D中对两个float型变量进行赋值,连上仿真器后运行查看变量的值和赋的初值有差异,如下图上面为赋值,下面为CCS中查看的变量值,一个是小数点第11位有差异,一个是第8位有差异,这个是啥原因?另外float型的精度是到小数点后几位?
建议您将其定义为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上的,后面链接失效了

也可以这样理解。现有的C28x CPU只支持单精度(32位)的硬件浮点运算,对于64位双精度浮点数的运算都是通过软件实现的。