Java 验证值是否正好等于0.00
我想计算java中变量的值是否等于0.00,目前定义为大小数Java 验证值是否正好等于0.00,java,comparison,int,double,Java,Comparison,Int,Double,我想计算java中变量的值是否等于0.00,目前定义为大小数 I have tried a variety of ways to do this including: tempListPrice.getAmount() == 0.00; tempListPrice.getAmount().equals(0.00); public static final zeroed = 0.00 tempListPrice.getAmount().equals(zeroed); 请记住,我已经在谷歌上
I have tried a variety of ways to do this including:
tempListPrice.getAmount() == 0.00;
tempListPrice.getAmount().equals(0.00);
public static final zeroed = 0.00
tempListPrice.getAmount().equals(zeroed);
请记住,我已经在谷歌上搜索了很多次,试图找到一种比较这个的简单方法。如何比较tempListPrice
的值以查看它是否等于0.00
,该值在前面被定义为大十进制数据类型
我该怎么做?(对不起,我对Java很陌生)
谢谢好的,在进一步研究后,你会想要相等或比较。你可能想要
tempListPrice.getAmount().compareTo(BigDecimal.ZERO);
或
但老实说,我们需要决定哪个更适合您的程序的语义。请记住,这是一个棘手的原因,因为浮点数实际上没有完全相等的概念,它们本质上是模糊的近似实体。您需要仔细检查代码,以确保其适用于您的环境
无论如何,Javadoc中的以下几点应该足以让您做出决定:
(等于)将此BigDecimal与指定的对象进行相等比较。与compareTo不同,此方法仅当两个BigDecimal对象的值和比例相等时才认为它们相等(因此,使用此方法进行比较时,2.0不等于2.00)
比照
(compareTo)将此BigDecimal与指定的BigDecimal进行比较。此方法认为两个值相等但比例不同(如2.0和2.00)的BigDecimal对象相等。对于六个布尔比较运算符(,>=,!=,)中的每一个,此方法优先于单独的方法,
输出
val 0.00测试0.00补偿=真
BigDecimal val = new BigDecimal("0.000");
BigDecimal test = new BigDecimal("0.00");
boolean isEqual = val.equals(test);
System.out.println("val " + val.toString() + " test " + test + " comp = " + isEqual);
输出
val 0.000 test 0.00 comp=false正如前面的答案所指出的,您需要确保所描述的方法满足您的要求。如果如变量名称所示,您将货币金额与零进行比较,另一种方法可能是将金额存储为两个int变量,如下所示(假设美元,但可以是任何其他货币):
简而言之,BigDecimal变量对于您的目的是必要的吗?您的.getAmount()方法返回什么?您是否希望
0.00
与0.0
不同?非常感谢Djechlin!
BigDecimal val = new BigDecimal("0.00");
BigDecimal test = new BigDecimal("0.00");
boolean isEqual = val.equals(test);
System.out.println("val " + val.toString() + " test " + test + " comp = " + isEqual);
BigDecimal val = new BigDecimal("0.000");
BigDecimal test = new BigDecimal("0.00");
boolean isEqual = val.equals(test);
System.out.println("val " + val.toString() + " test " + test + " comp = " + isEqual);
public boolean isZero (int dollars, int cents) {
return (dollars == 0 && cents == 0);
}