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);}}

原创粉丝点击