Java:检查oracle字段类型NUMBER(6,4)的值是否等于0

时间:2017-02-10 09:25:14

标签: java oracle double bigdecimal

在oracle数据库中,我有一个NUMBER(6,4)类型的字段。 默认情况下,数据库中的值设置为0(或者应该是0.0000?)。

在java类中,我需要检查此值是否为0。 目前我有这个:

double feePercent = clientCardMemberGroup.getFeePerc();
if (feePercent != 0) {
...
}

这不是正确的方法。我想知道如何使用BigDecimal来检查数据库中的值是0(或0.0或0.00还是0.000或0.0000)。谢谢!

2 个答案:

答案 0 :(得分:1)

BigDecimal bd2 = new BigDecimal("0.0000000000000000000");
     if((bd2.compareTo(BigDecimal.ZERO))==0){
                System.out.println("Inside");
            }

参考: Equals operator for zeros (BigDecimal / Double) in Java

答案 1 :(得分:1)

如果需要使用BigDecimal,请使用ResultSet.getBigDecimal从DB中检索数据。要比较值,您需要使用BigDecimal.compareTo()方法。 如果BigDecimal小于val,则public int compareTo(BigDecimal val)返回-1;如果BigDecimal大于val,则返回1;如果BigDecimal等于val,则返回0。 要与零进行比较,您可以使用常量BigDecimal.ZERO。所以在你的情况下

BigDecimal feePercent = clientCardMemberGroup.getFeePerc();
if (feePercent.compareTo(BigDecimal.ZERO) != 0) {
...
}