關於float浮點數的誤差分析

浮點型簡單講就是實數的意思。浮點數在計算機中用以近似表示任意某個實數。具體的說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到;但用浮點數真的可以準確表示實數嗎?讓我們來研究研究吧。

如下圖代碼所示,理論上我們輸出的數字應該是4000,但結果確是4001.552979,這就說明float浮點數是存在誤差的


那麼這些誤差值是爲何而來呢

其實那是因爲精度越來越高,佔字節數越多,在計算機中,越是精度高,需要佔的內存越大,而在解決實際問題中成本也就越大,因此不得不結合考慮精度與成本的問題,所以便存在誤差值。我們沒有辦法徹底消除這些誤差值,但我們可以通過一些方法是這些誤差值變小從而不影響我們的使用。

我們可以通過宏定義的方式來減小誤差,如下圖所示


這樣一來我們便使誤差減小到了0.000001,這個誤差就不會我們正常使用浮點數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章