工具/软件:Code Composer Studio
我知道有人建议避免使用浮点值,但我们将一些代码移植为 POC。。。
您能帮助我了解以下代码为什么会产生错误的结果吗?
float testArray1[]={0.0、1.0、2.0、1.22、4.0、 -1.802299、6.0、7.1234、8.0、9.0、 10.0、-11.9876、12.0、13.0、14.0、 15.0、16.0、
17.0、18.0、19.0、20.0、21.0、 22.0、23.0、24.0、9999.0};
float * fvalue =(float *) 0x10000;//强制创建"far"指针
void test()
{
(笑声)
for (i=0;<NUMBER_TEST_ELEMENTS; i++)
{
uartA0IntValue ("["、i);
uartA0FloatValue ("]:"、testArray1[i]);
}
(笑声)
}
产生以下结果:
[0]:0.0 [1]:1.0 [2]:2.0 [3]:1.22000 [4]:4.0 [5]:-1.32767 [6]:6.0 [7]:7.12340 [8]:8.0 [9]:9.0 [10]:10.0 [11]:-11.32767 [12]:12.0 [13]:13.0 [20.0 [20.0][21:21.0][20.0][20.0][20.0][21:21.0][18.0][20.0][20.0][20.0][20.0][20.0][20.0][20.0][20.0]:18.0][20.0][20.0[20.2][20.0]:19][18.0[20.0][20.0]:19][20.0[18.0[20.0][20.0[20.0]:19]:21.0[18.0[20.0[20.0]
[5]应为: -1.802299 、而是 -1.32767
[11]应为 :-11.9876 、而是: -11.32767