c語言中的inf和nan

2021-09-25 15:15:18 字數 444 閱讀 3991

計算calcdistancetohead的距離時,發現有輸出-nan的列印。跟蹤列印資料後,發現有sqrt資料異常的嫌疑。

首先,解釋一下它們的意思: inf表示「無窮大」,是infinite的縮寫。 nan表示「無效數字」,是not a number的縮寫。其次,這兩個是值會在浮點運算結果未定義或者無法表示的時候出現 比如,float a =0.0f; printf("\n 1/a = %f\n",1 =a); 這個時候就會出現1/a = inf的列印。 所以我們進行除法運算時一定要先檢測除數是否為0,否則可能會出現意想不到的結果。 而float a = -1.0f; printf("\n sqrt(a) =%f",sqrt(a)); 這個時候就會出現sqrt(a) = nan的列印。最後,一定要注意**的健壯性,注意特殊情況的處理,編譯器不會為我們檢查這些東西。

--------------------- 

原文: 

C語言中的nan和inf使用

本文總結nan和inf在c語言當中的含義 產生和判定方法。表示not a number,等同於 ind indeterminate windows 對浮點數進行了未定義的操作 對負數開方,對負數求對數,0.0 0.0,0.0 inf inf inf inf inf這些操作都會得到nan。0 0會產生...

C語言中nan的使用

含義 表示 not a number 產生 對浮點數產生了未定義的操作 1.對負數開方,對負數求對數,0.0 0.0,0.0 inf inf inf inf inf這些操作都會得到nan。0 0會產生操作異常 0.0 0.0不會產生操作異常,而是會得到nan 2.在gnu中,使用巨集 float n...

lua數學計算的inf和nan

今天,我來講述乙個lua關於對數學世界的恐懼之一,極大值和極小值。inf nan 在某次偶然的log除錯裡,我注意到控制台輸出了這麼兩個以前沒有見過的東西。雖然我的程式 裡只有非常簡單的數學計算,還是出現這樣高階 未知 的東西。對數學的敬畏由此展開.這個知識點很簡單,也許是初中或者小學時代的數學裡有...