检查大十进制值是否在范围内

2022-09-04 23:54:49

我有,我需要检查它是否在某个范围内。例如,应为 3 个条件:BiGDecimal price

if (price >= 0 and price <=500) {
   ....
} else if (price >=500 && price <=1000) {
   ....
} else if (price > 1000) {
   ....
}

如何使用大十进制类型正确操作。


答案 1

这是可以使用 .compareTo() 方法实现的。例如:

if ( price.compareTo( BigDecimal.valueOf( 500 ) > 0 
     && price.compareTo( BigDecimal.valueOf( 1000 ) < 0 ) {
    // price is larger than 500 and less than 1000
    ...
}

引用(和释义)来自JavaDoc:

用于执行这些比较的建议成语是:(x.compareTo(y) op 0),其中 op 是六个比较运算符之一 [(<, ==, >, >=, !=, <=)]

干杯


答案 2

让我们让它变得通用:

public static <T extends Comparable<T>> boolean isBetween(T value, T start, T end) {
    return value.compareTo(start) >= 0 && value.compareTo(end) <= 0;
}

推荐