java全局 BigDecimal 工具类

  • @param num2

  • @param point 请使用BigDecimalUtils.PRICE_DECIMAL_POINT | BigDecimalUtils.WEIGHT_DECIMAL_POINT

  • @return BigDecimal

*/

public static BigDecimal add(BigDecimal num1, BigDecimal num2, int point) {

return setScale(num1.add(num2), point);

}

/**

  • BigDecimal 乘法 num1 x num2

  • 未做非空校验

  • @param num1

  • @param num2

  • @param point 请使用BigDecimalUtils.PRICE_DECIMAL_POINT | BigDecimalUtils.WEIGHT_DECIMAL_POINT

  • @return BigDecimal

*/

public static BigDecimal multiply(BigDecimal num1, BigDecimal num2, int point) {

return setScale(num1.multiply(num2), point);

}

/**

  • BigDecimal 减法 num1 - num2

  • 未做非空校验

  • @param num1

  • @param num2

  • @param point 请使用BigDecimalUtils.PRICE_DECIMAL_POINT | BigDecimalUtils.WEIGHT_DECIMAL_POINT

  • @return BigDecimal

*/

public static BigDecimal subtract(BigDecimal num1, BigDecimal num2, int point) {

return setScale(num1.subtract(num2), point);

}

/**

  • BigDecimal 除法 num1/num2

  • 未做非空校验

  • @param num1

  • @param num2

  • @param point 请使用BigDecimalUtils.PRICE_DECIMAL_POINT | BigDecimalUtils.WEIGHT_DECIMAL_POINT

  • @return BigDecimal

*/

public static BigDecimal divide(BigDecimal num1, BigDecimal num2, int point) {

return num1.divide(num2, point, RoundingMode.HALF_UP);

}

/**

  • 设置小数点类型为 四舍五入

  • @param num

  • @param point

  • @return BigDecimal

*/

public static BigDecimal setScale(BigDecimal num, int point) {

return num.setScale(point, RoundingMode.HALF_UP);

}

/**

  • 比较 num1 是否大于 num2

  • @param num1

  • @param num2

  • @return boolean

*/

public static boolean isGreaterThan(BigDecimal num1, BigDecimal num2) {

return num1.compareTo(num2) == 1;

}

/**

  • 比较 num1 是否大于等于 num2

  • @param num1

  • @param num2

  • @return boolean

*/

public static boolean isGreaterOrEqual(BigDecimal num1, BigDecimal num2) {

return isGreaterThan(num1, num2) || equals(num1, num2);

}

/**

  • 比较 num1 是否小于 num2

  • @param num1

  • @param num2

  • @return boolean

*/

public static boolean isLessThan(BigDecimal num1, BigDecimal num2) {

return num1.compareTo(num2) == - 1;

}

/**

  • 比较 num1 是否小于等于 num2

  • @param num1

  • @param num2

  • @return boolean

*/

public static boolean isLessOrEqual(BigDecimal num1, BigDecimal num2) {

return isLessThan(num1, num2) || equals(num1, num2);

}

/**

  • 比较 num1 是否等于 num2

  • @param num1

  • @param num2

  • @return

*/

public static boolean equals(BigDecimal num1, BigDecimal num2) {

return num1.compareTo(num2) == 0;

}

/**

  • 计算 num1 / num2 的百分比

  • @param num1

  • @param num2

  • @return String

*/

public static String getPercentage(BigDecimal num1, BigDecimal num2) {

BigDecimal result = num1.divide(num2, 4, RoundingMode.HALF_UP);

NumberFormat percent = NumberFormat.getPercentInstance();

percent.setMaximumFractionDigits(2);

return percent.format(result.doubleValue());

}

/**

  • 计算 num1 / num2 的百分比

  • @param num1

  • @param num2

  • @param point 保留几位小数

  • @return String

*/

public static BigDecimal bigDecimalPercent(Integer num1, Integer num2, int point) {

if (num1 == null || num2 == null) {

return BigDecimal.ZERO;

}

if (num2.equals(Integer.valueOf(0))) {

return BigDecimal.ZERO;

}

BigDecimal bigDecimalNum1 = new BigDecimal(num1);

BigDecimal bigDecimalNum2 = new BigDecimal(num2);

return bigDecimalPercent(bigDecimalNum1, bigDecimalNum2, point);

}

/**

  • 计算 num1 / num2 的百分比

  • @param num1

  • @param num2

  • @param point 保留几位小数

  • @return String

*/

public static BigDecimal bigDecimalPercent(BigDecimal num1, BigDecimal num2, int point) {

if (num1 == null || num2 == null) {

return BigDecimal.ZERO;

}

if (equals(BigDecimal.ZERO, num2)) {

return BigDecimal.ZERO;

}

BigDecimal percent = num1.divide(num2, point + 2, RoundingMode.HALF_UP);

BigDecimal percent100 = percent.multiply(new BigDecimal(100)).setScale(point);

return percent100;

}

/**

  • 判断num是否为空 或者 零

  • @param num

  • @return String

*/

public static Boolean isEmpty(BigDecimal num) {

return null == num || equals(BigDecimal.ZERO, num);

}

/**

  • 判断num是否 不等于null 并且不等于零

  • @param num

最后

如果觉得本文对你有帮助的话,不妨给我点个赞,关注一下吧!

判断num是否为空 或者 零

  • @param num

  • @return String

*/

public static Boolean isEmpty(BigDecimal num) {

return null == num || equals(BigDecimal.ZERO, num);

}

/**

  • 判断num是否 不等于null 并且不等于零

  • @param num

最后

如果觉得本文对你有帮助的话,不妨给我点个赞,关注一下吧!

[外链图片转存中…(img-WPMP9atF-1714341997171)]

[外链图片转存中…(img-RUfUdChM-1714341997172)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值