特殊格式比较的方法总结
开发中经常与到要比较两值大小的问题,一般的格式通过">","<"即可,但是有些特殊的格式就不能使用这些运算符做判断或者有更简便的方法。下面总结一下开发中遇到的比较问题,并在今后的开发中会持续更新…
1.BigDecimal比较大小的方法
BigDecimal不能直接用">","<"比较
例如:
@Test
public void containsTest() {
BigDecimal a =new BigDecimal(0.1);
BigDecimal b =new BigDecimal(0.2);
if(a>b){//程序会报错
}
}
正确操作
public void containsTest() {
BigDecimal a =new BigDecimal(0.1);
BigDecimal b =new BigDecimal(0.2);
int result = a.compareTo(b);
result = -1;//表示a小于b
result = 0;//表示a等于b;
result = 1;//表示a大于b;
if(a.compareTo(b)==0){
}
}
2.Date比较大小
一般写法
@Test
public void dateTest() {
Date date1 = new Date();
Date date2 = new Date();
boolean result1 = date1.getTime() > date2.getTime(); // date1时间比date2时间大(所以date1比date2晚)
boolean result2 = date1.getTime() < date2.getTime(); // date1时间比date2时间小(所以date1比date2早)
boolean result3 = date1.getTime() == date2.getTime(); // date1时间和date2时间相等
}
高级写法
@Test
public void dateTest1() {
Date date1 = new Date();
Date date2 = new Date();
boolean result1 = date1.before(date2); //true ——>date1小于date2(date1比date2早) false反之
boolean result2 = date1.after(date2); //true ——>date1大于date2(date1比date2晚) false反之
boolean result3 = date1.equals(date2); //rure 相等
}
注意!
date1和date2的2个日期,一定要是标准的日期格式:yyyyMMddHHmmss或yyyy-MM-dd HH:mm:ss
如果不是,在比较前一定要先格式化成这两种格式后再做比较,否则会抛异常。