【发布时间】:2017-01-14 18:37:46
【问题描述】:
像这样比较浮点数和整数是否安全?
private static void foo(float n) {
if (n >= 1 || n <= 0) {
// code
}
}
根据JLS (5.6.2. Binary Numeric Promotion)如果其中一个参数是float,则另一个参数转换为float再进行比较。
但据我了解,如果转换后的浮点数与原始浮点数相同,则这种比较将返回 true。我们如何保证?
【问题讨论】:
-
是的。它是安全的。注意这里是
double而不是float- 但同样的规则适用。 -
@MattBall:很好的接球。我显然需要更多的咖啡。
标签: java floating-point