我试图在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
答案 0 :(得分:1)
不要使用字符串比较来比较小数值。由于你的两个数字是相等的,但由于尾随零字符串比较失败。
您应该将字符串值转换为double,以避免因尾随零而导致不匹配。您可以使用Double.parseDouble(String)
将字符串转换为double。一旦有两个数字,使用==
运算符进行比较。
答案 1 :(得分:1)
BigDecimal是float / double的最佳数据类型。