java开发中常用的数字工具类
来源:互联网 发布:hp5200网络打印机设置 编辑:程序博客网 时间:2024/06/03 20:38
import java.math.BigDecimal;import org.apache.commons.lang.RandomStringUtils;public class NumberUtil {private static final int DEF_DIV_SCALE = 2;/** * 判断字符串是否为数字 * @param num * @return */public static boolean isNumberic(String num){return (null == num || num.length() <= 0 || num.matches("\\d{1,}")) ? true : false;}/** * @return 返回12位随机数 */public static String randomNumber(){return RandomStringUtils.randomNumeric(12);}/** * @param parm * @return 返回指定位数随机数 */public static String randomNumber(int parm){return RandomStringUtils.randomNumeric(parm);} /** * @return 返回纯数字和字母的GUID */ public static String randomUUID() { return GuidUtil.randomGuidUtil().toString().replaceAll("-",""); } /** * @param parm * @return 返回指定位数的GUID */ public static String randomUUID(int parm) { return GuidUtil.randomGuidUtil().toString().replaceAll("-","").substring(0,parm); }/** * * 两个Double数相加 * * * @param v1 * * @param v2 * * @return Double */public static Double add(Double v1, Double v2) {BigDecimal b1 = new BigDecimal(v1.toString());BigDecimal b2 = new BigDecimal(v2.toString());return new Double(b1.add(b2).doubleValue());}/** * * 两个Double数相减 * * * @param v1 * * @param v2 * * @return Double */public static Double sub(Double v1, Double v2) {BigDecimal b1 = new BigDecimal(v1.toString());BigDecimal b2 = new BigDecimal(v2.toString());return new Double(b1.subtract(b2).doubleValue());}/** * * 两个Double数相乘 * * * @param v1 * * @param v2 * * @return Double */public static Double mul(Double v1, Double v2) {BigDecimal b1 = new BigDecimal(v1.toString());BigDecimal b2 = new BigDecimal(v2.toString());return new Double(b1.multiply(b2).doubleValue());}/** * * 两个Double数相除 * * * @param v1 * * @param v2 * * @return Double */public static Double div(Double v1, Double v2) {BigDecimal b1 = new BigDecimal(v1.toString());BigDecimal b2 = new BigDecimal(v2.toString());return new Double(b1.divide(b2, DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP).doubleValue());}/** * * 两个Double数相除,并保留scale位小数 * * * @param v1 * * @param v2 * * @param scale * * @return Double */public static Double div(Double v1, Double v2, int scale) {if (scale < 0) {throw new IllegalArgumentException("The scale must be a positive integer or zero");}BigDecimal b1 = new BigDecimal(v1.toString());BigDecimal b2 = new BigDecimal(v2.toString());return new Double(b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue());}/** * @param v1 * @return 返回指定Double的负数 */public static Double neg(Double v1) {return sub(new Double(0),v1);}}