检查大十进制值是否在范围内
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) {
....
}
如何使用大十进制类型正确操作。
我有,我需要检查它是否在某个范围内。例如,应为 3 个条件:BiGDecimal price
if (price >= 0 and price <=500) {
....
} else if (price >=500 && price <=1000) {
....
} else if (price > 1000) {
....
}
如何使用大十进制类型正确操作。
这是可以使用 .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 是六个比较运算符之一 [(<, ==, >, >=, !=, <=)]
干杯
让我们让它变得通用:
public static <T extends Comparable<T>> boolean isBetween(T value, T start, T end) {
return value.compareTo(start) >= 0 && value.compareTo(end) <= 0;
}