一、问题描述
把从数据库里查询出来的数据,金额小于1的数据给过滤掉,数据库里的数据有很多都是0.01,0.02,等。
二、解决方法
先把他们转成BigDecimal类型,然后在利用BigDecimal中的compareTo方法去比较大小,实现如下:
@org.junit.Test
public void Test(){
BigDecimal big = new BigDecimal(1);
BigDecimal Graphicprice = new BigDecimal(0.01);//图文价格
BigDecimal Speechprice = new BigDecimal(0.02);//语音价格
BigDecimal Videoprice = new BigDecimal(1);//视频价格
System.out.println(Graphicprice + " " + Speechprice +" " + Videoprice);
if(Graphicprice.compareTo(big)<0 || Graphicprice.compareTo(big)==0 || Speechprice.compareTo(big)<0 || Speechprice.compareTo(big)==0 || Videoprice.compareTo(big)<0 || Videoprice.compareTo(big)==0){
System.out.println("ok");
}
}
输出结果如下:
@org.junit.Test
public void Test(){
BigDecimal data1 = new BigDecimal("1");
BigDecimal data2 = new BigDecimal("0.01");
if (data1.compareTo(data2) < 0) {
System.out.println("第二位数大!");
}
if (data1.compareTo(data2) == 0) {
System.out.println("两位数一样大!");
}
if (data1.compareTo(data2) > 0) {
System.out.println("第一位数大!");
}
}