import java.math.BigDecimal;
/**
* BigDecimal 对double、float类型加减乘除,值大小比较运算工具类
*
* @Author lsl
* @Date 2022-6-08
**/
public class BigDecimalUtils {
/**
* 加法运算
*/
public static BigDecimal doubleAdd(double d1, double d2) {
BigDecimal b1 = new BigDecimal(Double.toString(d1));
BigDecimal b2 = new BigDecimal(Double.toString(d2));
return b1.add(b2);
}
public static BigDecimal floatAdd(float f1, float f2) {
BigDecimal b1 = new BigDecimal(Float.toString(f1));
BigDecimal b2 = new BigDecimal(Float.toString(f2));
return b1.add(b2);
}
/**
* 减法运算
*/
public static BigDecimal doubleSub(double d1, double d2) {
BigDecimal b1 = new BigDecimal(Double.toString(d1));
BigDecimal b2 = new BigDecimal(Double.toString(d2));
return b1.subtract(b2);
}
public static BigDecimal floatSub(float f1, float f2) {
BigDecimal b1 = new BigDecimal(Float.toString(f1));
BigDecimal b2 = new BigDecimal(Float.toString(f2));
return b1.subtract(b2);
}
/**
* 乘法运算
*/
public static BigDecimal doubleMul(double d1, double d2) {
BigDecimal b1 = new BigDecimal(Double.toString(d1));
BigDecimal b2 = new BigDecimal(Double.toString(d2));
return b1.multiply(b2);
}
public static BigDecimal floatMul(float f1, float f2) {
BigDecimal b1 = new BigDecimal(Float.toString(f1));
BigDecimal b2 = new BigDecimal(Float.toString(f2));
return b1.multiply(b2);
}
/**
* 除法运算
*
* BigDecimal.ROUND_DOWN:直接省略多余的小数,比如1.38如果保留1位小数,得到的就是1.3
* BigDecimal.ROUND_UP:直接进位,比如1.11如果保留1位小数,得到的就是1.2
* BigDecimal.ROUND_HALF_UP:四舍五入,2.45保留1位,变成2.5
* BigDecimal.ROUND_HALF_DOWN:四舍五入,2.45保留1位,变成2.4
*/
public static BigDecimal doubleDiv(double d1, double d2) {
BigDecimal b1 = new BigDecimal(Double.toString(d1));
BigDecimal b2 = new BigDecimal(Double.toString(d2));
// 保留小数点后两位 ROUND_HALF_UP = 四舍五入
return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP);
}
public static BigDecimal floatDiv(float f1, float f2) {
BigDecimal b1 = new BigDecimal(Float.toString(f1));
BigDecimal b2 = new BigDecimal(Float.toString(f2));
// 保留小数点后两位 ROUND_HALF_UP = 四舍五入
return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP);
}
/**
* 比较double类型 d1 d2大小
* @param d1
* @param d2
* @return d1>d2 return 1 d1=d2 return 0 d1<d2 return -1
*/
public static int doubleCompareTo(double d1, double d2) {
BigDecimal b1 = new BigDecimal(Double.toString(d1));
BigDecimal b2 = new BigDecimal(Double.toString(d2));
return b1.compareTo(b2);
}
/**
* 比较float类型 f1 f2大小
* @param f1
* @param f2
* @return f1>f2 return 1 f1=f2 return 0 f1<f2 return -1
*/
public static int floatCompareTo(float f1, float f2) {
BigDecimal b1 = new BigDecimal(Float.toString(f1));
BigDecimal b2 = new BigDecimal(Float.toString(f2));
return b1.compareTo(b2);
}
}
BigDecimal 对double、float类型加减乘除,值大小比较运算工具类
最新推荐文章于 2023-05-23 11:25:04 发布