電腦算術
當 x 為NaN時,在許多程式語言中評估 x == x 的結果為下列何者?
- A真
- B假
- C發生例外,程式必定停止
查看答案與解析
正確答案:B. 假
在IEEE 754中,NaN是「非數」的值,因此與任何值比較都不會相等,與NaN自身比較時 x == x 也為假(x != x 為真)。也有人利用這個性質,以 x != x 來判定是否為NaN,不過通常會使用專用的函式(isnan等)。NaN是由 0 ÷ 0 或 ∞ − ∞ 等產生,並會擴散到之後的計算。比較時發生例外而停止並非預設的行為。
- A. NaN之間不被視為相等。
- B. 正確。NaN與自身也不相等。
- C. 並非比較時必定停止。