BigDecimal 如何在一个区间的比较

时间:2025-04-01 15:38:41

BigDecimal 如何在一个区间的比较

背景
由于BigDecimal 的精度比较高,在计算的时候有时候存入数据库的时候会进行四舍五入 会对后面的结果判断存在误差 所以比较的结果会在一个区间的

public static boolean compareToInterval(BigDecimal bigDecimal){
    //设置区间在+0.00000001和-0.00000001之间 也是允许的误差  只能比两端的值小
  // 先对传入的bigDecimal 参数进行符号判断 在对区间两端的值进行比较
  // 即和0进行比较  小于即为负数 大于即为负数 等于即为0
  int symbol=(new BigDecimal("0"));
  if(symbol>=0){
    int begin=(new BigDecimal("0.00000001"));
    if(begin<=0){
      return true;
    }
  }
  else {
    int end=(new BigDecimal("-0.00000001"));
    if(end>=0){
      return true;
    }
  }
  return  false;
}