作者dbzgtgwduo (迪歐麥斯威爾)
看板C_and_CPP
標題[問題] 檢查出 -1.#INF -1.#IND
時間Wed May 27 22:28:09 2009
請問一下,有沒有辦法可以檢查出 double 的值是不是無效的
例如:-1.#INF、-1.#IND
希望不要是編譯器才有的特殊函數,例如 VC 的 isinf()
我用的是 Dev C++
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.14.105
1F:推 VictorTom:查IEEE 754 spec, 用bit mask去分析exponent/mentisa部 05/27 23:19
2F:→ VictorTom:份, 就可以找出非regular的floating point值:) 05/27 23:20
3F:→ VictorTom:double是不是用754我忘了, 反正規則應該都差不多.... 05/27 23:21
4F:→ VictorTom:不過為了方便, 最終你應該也是會寫成define / function 05/27 23:21
5F:推 littleshan:isinf 和 isnan 是 C99 標準,並非編譯器特別提供的 05/27 23:56
6F:→ tinlans:.......誰跟你說 isinf() 是 VC 特有的。 05/28 00:56
7F:推 zerodevil:我猜..原po用dev-c++ compile的時候沒加-lm 05/28 01:21