何時可以接受浮點比較?
在程式設計中,浮點數與等號運算子(= =)進行比較通常是由於其表述中固有的不準確而受到勸阻。然而,在有限的情況下,這種比較可以被認為是可靠的。
整數的精確表示
IEEE 754,廣泛採用的浮點運算標準,保證特定範圍內整數的浮點表示是精確的。因此,可以使用相等運算子來比較包括零在內的整數。
範例:
float a = 1.0; float b = 1.0; a == b; // True
整數常數
使用定義為static const double 的常數(如同程式碼中的常數的BAR 常數)可確保該值是表示為精確的浮點數。因此,使用相等運算子將變數與此類常數進行比較總是會產生正確的結果。
範例:
static const double BAR = 3.14; void foo(double d) { if (d == BAR) ... }
在這種情況下,foo(BAR ) 將始終評估為 true,假設沒有其他計算或操作修改 d 變數。
警告注意
雖然整數的浮點比較通常是可靠的,但仍建議謹慎。
以上是什麼時候使用相等運算子進行浮點比較是安全的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!