java如何检查两个双值中的较大值和较小值?
我有两个double
值,我想通过比较这两个值来检查是否等于或大于和是否等于或小于
我在网上找不到相关的问题,所以我也找不到答案
我所能找到的就是,如何比较两个double
值
int returnVal = Double.compare(d1, d2);
但是我如何检查d1 <= d2
和d1 >= d2
编辑:
double remRangeInKm;
if (remRange == 200 || remRange == 500){
if (remRange == 200) remRangeInKm = 0.2;
else remRangeInKm = 0.5;
}
else remRangeInKm = remRange * 1.0;
int earthRadius = 6371; //in km
double distance = Math.abs(Math.acos(Math.sin(remLatitude)*Math.sin(currentLatitude)
+ Math.cos(remLatitude)*Math.cos(currentLatitude)
* Math.cos(currentLongitude - remLongitude)) * earthRadius);
Log.d("Distance after formula", String.valueOf(distance));
if (distance <= remRangeInKm){
triggerNotification();
}
距离是91.482605 meters
,remRangeInKm是200 meters
,即使它没有执行if
语句
# 1 楼答案
# 2 楼答案
这会满足您的需要并返回:
如果d1在数值上等于d2,则值为0;如果d1在数值上小于d2,则值小于0;如果d1在数值上大于d2,则该值大于0
# 3 楼答案
请尝试使用BigDecimal,如下例所示
这将产生以下输出
可能重复:How to resolve a Java Rounding Double issue
# 4 楼答案
这需要一些修正,这里有死代码:
固定的:
现在尝试使用此修复程序运行代码
注意:如果使用if/else的括号,则更容易遵循逻辑并理解每种情况下发生的情况
# 5 楼答案
那么:
这适用于
Double
:编译器将根据需要执行box/unbox操作。当然你也可以用另一种方式# 6 楼答案
这就行了