对于Java程序,我编写了一个方法来计算两个浮点数之间的距离。该方法对于输入顺序对称地工作是非常重要的。目前我正在使用的方法:
double distanceBetween(double a, double b) {
return Math.abs(a - b); // I assume that a-b = -(b-a)
}
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否总是对称的,或者我是否应该将代码更改为:
double distanceBetween(double a, double b) {
if (a > b) return a - b;
else return b - a;
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是
Math.abs(a - b) == Math.abs(b - a)
Run Code Online (Sandbox Code Playgroud)
保证 a 和 b 的所有值始终为真?或者在某些情况下(由于使用浮点数学)结果是否可能不完全相同?