2024-04-14 21:05:01 +08:00

152 lines
3.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.zhgd.xmgl.util;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j;
import java.util.Random;
@Slf4j
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) {
log.error("error", e);
}
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) {
log.error("error", e);
}
return null;
}
/**
* 生成数字随机数
*
* @param place 定义随机数的位数
*/
public static String randomNum(int place) {
String base = "0123456789";
StringBuffer sb = new StringBuffer();
Random rd = new Random();
for (int i = 0; i < place; i++) {
sb.append(base.charAt(rd.nextInt(base.length())));
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(randomNum(6));
}
}