一尘不染

如何在BigDecimal上使用>,=,<之类的比较运算符

java

我有一个将unitPrice设置为BigDecimal数据类型的域类。现在,我正在尝试创建一种比较价格的方法,但似乎我没有BigDecimal数据类型的比较运算符。我必须更改数据类型还是其他方法?


阅读 479

收藏
2020-12-03

共1个答案

一尘不染

Class的每个对象BigDecimal都有一个compareTo可用来将其与另一个BigDecimal进行比较的方法。compareTo然后比较的结果> 0== 0或者< 0根据需要进行比较。阅读文档,您将找到答案。

运营商==<>等只能在基本数据类型等中使用intlongdouble或它们的包装类等IntegerDouble

从以下文档中compareTo

将其BigDecimal与指定的进行比较BigDecimal

BigDecimal 此方法将值相等但规模不同的两个对象(例如2.0和2.00)视为相等。对于六个布尔比较运算符(<,==,>,>
=,!=,<=)中的每一个,该方法优先于单个方法提供。建议执行这些比较的习惯用法是:(x.compareTo(y) <op> 0),其中<op>
是六个比较运算符之一。

返回:-1、0或1,因为此BigDecimal在数值上小于,等于或大于val。

2020-12-03