当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在BigDecimal上使用>,=,<等比较运算符》经验,为你挑选了5个好方法。

我有一个domainPrice设置为BigDecimal数据类型的域类.现在我正在尝试创建一个比较价格的方法,但似乎我不能在BigDecimal数据类型中有比较运算符.我是否必须更改数据类型或是否有其他方法?



1> Simulant..:

Class的每个对象BigDecimal都有一个方法compareTo可用于将它与另一个BigDecimal进行比较.compareTo然后将结果进行比较> 0,== 0或者< 0根据您的需要进行比较.阅读文档,你会发现.

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

来自以下文件compareTo:

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

BigDecimal 通过此方法,两个值相等但具有不同比例(如2.0和2.00)的对象被认为是相等的.对于六个布尔比较运算符(<,==,>,> =,!=,<=)中的每一个,优先考虑该方法.建议用于执行这些比较的习惯是:(x.compareTo(y) 0), 六个比较运算符之一.

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


@ user3127109是的,`a.compareTo(b)`如果`a> b`则返回大于零的数字,如果`a == b`则返回'0`,如果'a 是.该信息位于答案中提供的链接中.

2> torina..:

简而言之:

firstBigDecimal.compareTo(secondBigDecimal) < 0 // "<"
firstBigDecimal.compareTo(secondBigDecimal) > 0 // ">"    
firstBigDecimal.compareTo(secondBigDecimal) == 0 // "=="  
firstBigDecimal.compareTo(secondBigDecimal) >= 0 // ">="    



3> Arnaud..:

使用compareToBigDecimal 的方法:

public int compareTo(BigDecimal val)将此BigDecimal与指定的BigDecimal进行比较.

Returns:
-1, 0, or 1 as this BigDecimal is numerically less than, equal to, or greater than val.



4> Agung Setiaw..:

您可以使用命名的方法compareTo,x.compareTo(y).如果x和y相等则返回0,如果x大于y则返回1,如果x小于y则返回-1



5> Mureinik..:

BigDecimal不是原始的,所以你不能使用<,>运算符.但是,因为它是a Comparable,你可以使用compareTo(BigDecimal)相同的效果.例如:

public class Domain {
    private BigDecimal unitPrice;

    public boolean isCheaperThan(BigDecimal other) {
        return unitPirce.compareTo(other.unitPrice) < 0;
    }

    // etc...
}

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有