C 如何檢查浮點數是否為整數

2021-10-05 03:30:28 字數 1663 閱讀 9633

今天在寫程式的時候,突然遇到這個問題——如何判斷乙個浮點數小數點後是否有小數值?

剛開始想了乙個比較麻煩的方法,感覺不妥,太浪費時間了,然後就上網看了一些其他人的思路,藉此總結一下幾種判斷方式。

number 1: 向下向上取整法

int

main()

標頭檔案

ceil():computes the smallest integer value not less thanarg. ——向上取整

floor(): computes the largest integer value not greater thanarg. ——向下取整

向上,向下取整後相同,則為整數

number 2: fmod 浮點取餘法

int

main()

標頭檔案

double fmod( double x, double y ): computes the floating-point remainder of the division operationx/y.——浮點型取餘,例如fmod(10.1,3.1) = 0.8,可以自行體會一下

浮點型取餘後為0,則為整數

number 3: modf 整數小數分離法

int

main()

標頭檔案

double modf( double x, double* iptr ):decomposes given floating point valuexinto integral and fractional parts——分解浮點數為整數和小數

x是要檢驗的資料;

返回值:返回值是小數點後的值

返回值如果為0.0,即為整形

number 4: 作差法(最簡單)

int

main()

int(res):強制型別轉換為整形,然後浮點型與整形作差

如果為0,則為整形

恕我把最簡單的放在最後,目的為了大家多學點東西。如果有更好的想法,也可以寫下來,互相學習!

。◕‿◕。

JS判斷是否為數字,是否為整數,是否為浮點數

正規表示式方法 function checkrate input 下面為普通函式寫法 function baseisnotnum thenum return false function baseisnotint theint return false function baseisnotfloat...

js判斷是否為數字, 是否為整數, 是否為浮點數

正規表示式方法 筆者測試可用 function checkrate input function baseisnotnum thenum return false function baseisnotint theint return false function baseisnotfloat th...

浮點數判斷是否為0

浮點數因為儲存形式的原因不能直接和0值比較,當要判斷乙個浮點數是否等於0時 fabs x 1e 6 就是認為是0了 float,double分別遵循r32 24,r64 53的標準。所以float的精度誤差在1e 6 double精度誤差在1e 15 所以要判斷乙個單精度浮點數 則是if abs f...