如何在 BigDecimal 上使用比较运算符,如 >、=、<
2022-08-31 07:35:31
我有一个域类,单位价格设置为BigDecimal数据类型。现在我正在尝试创建一个方法来比较价格,但似乎我不能在BigDecimal数据类型中使用比较运算符。我是否必须更改数据类型或其他方法?
我有一个域类,单位价格设置为BigDecimal数据类型。现在我正在尝试创建一个方法来比较价格,但似乎我不能在BigDecimal数据类型中使用比较运算符。我是否必须更改数据类型或其他方法?
简而言之:
firstBigDecimal.compareTo(secondBigDecimal) < 0 // "<"
firstBigDecimal.compareTo(secondBigDecimal) > 0 // ">"
firstBigDecimal.compareTo(secondBigDecimal) == 0 // "=="
firstBigDecimal.compareTo(secondBigDecimal) >= 0 // ">="
类的每个对象都有一个方法 compareTo,
您可以使用它将其与另一个大十进制进行比较。然后将 的结果进行比较,或者取决于您需要什么。阅读文档,您将找到答案。BigDecimal
compareTo
> 0
== 0
< 0
运算符 、 等只能用于基元数据类型 (如 、 或它们的包装类,如 和 )。==
<
>
int
long
double
Integer
Double
从以下文档:compareTo
将其与指定的 进行比较。
BigDecimal
BigDecimal
此方法将值相等但具有不同刻度(如 2.0 和 2.00)的两个对象视为相等。对于六个布尔比较运算符(<==、>、>=、!=、<=),提供此方法的优先级优于单个方法。执行这些比较的建议习语是:,其中是六个比较运算符之一。
BigDecimal
(x.compareTo(y) <op> 0)
<op>
返回:-1、0 或 1,因为此 BigDecimal 在数值上小于、等于或大于 val。