浮點數除錯總結

2021-09-30 09:45:10 字數 508 閱讀 9347

除錯介紹:

硬體平台:powerpc5247

軟體平台:vxworks

使用語言:c語言

錯誤總結:

1、在生成任務時,如果在任務中使用浮點計算,一定需要將任務的標誌vx_fp_task設定,否則將會出錯,主要在其他任務**現0/0錯誤

產生原因:

沒有設定浮點計算標識,進入任務執行沒有在進入任務時儲存浮點暫存器值,這樣在任務中進行浮點運算將破壞了浮點暫存器的內容,而在任務推出後,浮點暫存器不能恢復,造成其他任務在進行浮點計算時出現浮點運算錯誤。

修改辦法:

在建立任務時,設定vx_fp_task標識

2、在從硬體或者其他軟體任務獲取浮點數值時,一定需要確認入口的數值合法,否則如果一些非法數值將造成浮點計算溢位,從而產生浮點溢位錯誤;

產生原因:

輸入的浮點數非法範圍,進行浮點計算將溢位;

規避辦法:

在進行浮點數入口出進行數值合法性判斷,對於非法值進行預處理;

js 浮點數加減總結

說明 眾所周知,js在計算浮點數時候,結果可能會不準確。比如 在chrome中的運算結果 2.2 2.1 4.300000000000001 2.2 1.9 0.30000000000000027 2.2 2.2 4.840000000000001 2.1 0.3 7.000000000000001...

浮點數 儲存

關鍵字 體系結構 ieee754 浮點數 儲存 main 如果不執行上面的 讓我們來直接判斷,輸出的結果會是什麼?而在你執行程式之後,結果卻很讓人詫異 123.456001。為什麼會是123.456001?有六位小數可以理解,最後那個1是為何?有很多人解釋說最後那個1是亂碼,隨機的。嘿嘿 其實無論你...

浮點數操作

float fx 49.03f int nx fx 100 printf d nx 執行上述 結果 4902。用vc6.0,2005,gcc編譯執行結果都是一樣。為什麼會這樣呢,是因為浮點數運算具有不精確性。其實編譯上面的 編譯器會有警告的。warning c4244 initializing co...