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