package com.zhgd.xmgl.util; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; public class NumberUtils { /** * 除以 * * @param b1 * @param b2 * @param scale * @return */ public static Double div(Double b1, Double b2, Integer scale) { if (b1 == null || b2 == null || b2.equals(0D)) { return 0D; } return NumberUtil.round(b1 / b2, scale).doubleValue(); } /** * 涨跌幅比率,b1比b2增长多少 * * @param b1 * @param b2 * @param scale 保留小数位 * @return */ public static Double rate(Double b1, Double b2, Integer scale) { if (b1 == null || b2 == null || b2.equals(0D)) { return 0D; } return NumberUtil.round((b1 - b2) / b2 * 100, scale).doubleValue(); } /** * 大于等于 * * @return */ public static boolean ge(Double b1, Double b2) { return b1 != null && b2 != null && b1 >= b2; } /** * 大于 * * @return */ public static boolean gt(String s1, String s2) { try { if (!NumberUtil.isNumber(s1) || !NumberUtil.isNumber(s2)) { return false; } return Convert.toDouble(s1) > Convert.toDouble(s2); } catch (Exception e) { e.printStackTrace(); } return false; } /** * 小于等于 * * @return */ public static boolean le(Double b1, Double b2) { return b1 != null && b2 != null && b1 <= b2; } /** * description: 使用 String.format 格式化数字,实现左侧补 0 * * @param num 需要格式化的数字 * @param digit 生成字符串长度(保留数字位数) * @return String * @version v1.0 * @author w * @date 2019年7月19日 下午2:14:31 */ public static String fillZero(int num, int digit) { /** * 0:表示前面补0 * digit:表示保留数字位数 * d:表示参数为正数类型 */ return String.format("%0" + digit + "d", num); } /** * 相乘 * * @return */ public static Double multiply(Double b1, Double b2) { if (b1 != null && b2 != null) { return b1 * b2; } return null; } /** * 获取两个字符串最大的 * * @param d1 * @param d2 * @return */ public static String getMaxStr(String d1, String d2) { try { if (StrUtil.isBlank(d1) && StrUtil.isBlank(d2)) { return null; } if (StrUtil.isBlank(d1)) { return d2; } else if (StrUtil.isBlank(d2)) { return d1; } return Convert.toStr(Math.max(Double.parseDouble(d1), Double.parseDouble(d2))); } catch (NumberFormatException e) { e.printStackTrace(); } return null; } }