如何在Java中将Double转换为Decimal

时间:2013-06-05 11:51:47

标签: java

我想比较两个金额。我的问题是,另一个数量是小数,而另一个是Double,我使用方法'CompareTo()'来比较金额,它不允许双倍。我不想更改Double金额,因为它可能在不同的地方使用,它可能会打破其他人的代码。有没有办法可以将Double金额转换为Decimal?

请帮忙

  Double maxSumInsured;
   ProfidaDecimal  totalClaimCost;

   if(totalClaimCost.compareTo(maxSumInsured) > 0){
    //some code here
   }

3 个答案:

答案 0 :(得分:1)

如果您正在处理主要类型,则不需要使用任何比较方法来测试它们是否相等。只需将int投放到double

即可
(double)yourDecimal == yourDouble

如果他们是拳击类型(即IntegerDouble而不是intdouble),您仍然可以使用Equals

((Double)yourDecimal).Equals(yourDouble)

或者,如果您想使用compareTo来查看哪一个更大:

((Double)yourDecimal).compareTo(yourDouble) >0 
// or <0 or ==0 depending on what you're looking for

This SO answer总结了你需要了解的关于施法/拳击的一切。

编辑:根据OP评论,这应该有效:

Double maxSumInsured;
maxSumInsured = 0.0; // or anything storable as a double
if(((Double)totalClaimCost).compareTo(maxSumInsured) > 0){
   // ...
}

答案 1 :(得分:1)

对于转换,您可以使用BigDecimal.valueOf(arg0)并将此值作为参数传递给'CompareTo'方法

答案 2 :(得分:1)

尝试以下:

Double d = 5.25;
Integer i = d.intValue(); // i becomes 5