什么时候可以接受浮点比较?
在编程中,浮点数与相等运算符(= =)进行比较通常是由于其表述中固有的不准确而受到劝阻。然而,在有限的情况下,这种比较可以被认为是可靠的。
整数的精确表示
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中文网其他相关文章!