比较从DB中获取的java中的两个值

时间:2013-11-07 16:25:43

标签: java database sql-server-2008 comparison

我试图在java中执行查询,以便从DB中获取一些值。我试图比较从DB&中获取的货币/浮动值。这个money / float从Result set获得为rs.getString。 所以在比较时,它是匹配的。这是我的代码, DBQuery是从Tablename中选择*,其中Price =' value1' value1是从UI

获取的预定义值
ResultSet rs = stmt.executeQuery(DBquery+"'"+value1+"';");
            z:
                while (rs.next()){
                    String name= rs.getString(DBCol3);
                    System.out.println("name="+name);
                    System.out.println("value1="+value1);
                    if(value1.equalsIgnoreCase(name)){
                        System.out.println("Values are Same");
                        break z;
                    }else{
                        System.out.println("Values Mismatch");

                    }
                }

在这种情况下,我从UI获取value1为123.45 在db中,Price列具有相同的值。但在比较时,它显示我不匹配。 名称= 123.45000

2 个答案:

答案 0 :(得分:1)

不要使用字符串比较来比较小数值。由于你的两个数字是相等的,但由于尾随零字符串比较失败。

您应该将字符串值转换为double,以避免因尾随零而导致不匹配。您可以使用Double.parseDouble(String)将字符串转换为double。一旦有两个数字,使用==运算符进行比较。

答案 1 :(得分:1)

BigDecimal是float / double的最佳数据类型。