博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3、Number工具类
阅读量:6070 次
发布时间:2019-06-20

本文共 3930 字,大约阅读时间需要 13 分钟。

hot3.png

import java.math.BigDecimal;import java.math.MathContext;import java.math.RoundingMode;import java.text.DecimalFormat;import java.text.NumberFormat;/** * Number工具类 * */public abstract class NumberUtil {	//------------常量定义-------------//	/** 零 */	public static BigDecimal ZERO = BigDecimal.ZERO;	/** 一百 */	public static BigDecimal ONE_HUNDRED = new BigDecimal("100");			private static NumberFormat nf = new DecimalFormat("0000");    public static MathContext mc = new MathContext(16);    /**     * double 相加     *      * @param dd     * @return     */    public static double doubleAdd(double... dd) {        BigDecimal result = BigDecimal.ZERO;        for (double n : dd) {            result = result.add(new BigDecimal("" + n));        }        return result.doubleValue();    }    /**     * double 相加 - 四舍五入     *      * @param dd     * @return     */    public static double doubleAddScaled(double... dd) {        BigDecimal result = BigDecimal.ZERO;        for (double n : dd) {            result = result.add(new BigDecimal("" + n));        }        return scale(result);    }    /**     * double 相减     *      * @param d1     * @param d2     * @return     */    public static double doubleSubtract(double d1, double d2) {        return new BigDecimal("" + d1).subtract(new BigDecimal("" + d2)).doubleValue();    }    /**     * double 相减 - 四舍五入     *      * @param d1     * @param d2     * @return     */    public static double doubleSubtractScaled(double d1, double d2) {        return scale(new BigDecimal("" + d1).subtract(new BigDecimal("" + d2)));    }    /**     * 四舍五入 - RoundingMode.HALF_UP     *      * @param decimal     * @return     */    private static double scale(BigDecimal decimal) {        return decimal.setScale(2, RoundingMode.HALF_UP).doubleValue();    }    /**     * 货币形式格式字符串     *      * @param ####,###0.00     * @param value     */    public static String formatNumberString(String format, String value) {        BigDecimal bd = new BigDecimal(value);        DecimalFormat df = new DecimalFormat(format);        return df.format(bd);    }    /**     * 相除 取位 d1/d2 - 四舍五入     *      * @param d1     * @param d2     * @param scale     * @return     */    public static double doubleDivide(double d1, double d2, int scale) {        BigDecimal bd1 = new BigDecimal(d1);        BigDecimal bd2 = new BigDecimal(d2);        BigDecimal bd3 = bd1.divide(bd2, mc);        return bd3.setScale(scale, RoundingMode.HALF_UP).doubleValue();    }    /**     * 相乘 取位 d1*d2 - 四舍五入 默认保留2位     *      * @param d1     * @param d2     * @return     */    public static double doubleMultiply(double d1, double d2) {        return doubleMultiply(d1, d2, 2);    }    /**     * 相乘 取位 d1*d2 - 四舍五入     *      * @param d1     * @param d2     * @param scale     * @return     */    public static double doubleMultiply(double d1, double d2, int scale) {        BigDecimal bd1 = new BigDecimal(Double.toString(d1));        BigDecimal bd2 = new BigDecimal(Double.toString(d2));        return bd1.multiply(bd2, mc).setScale(scale, RoundingMode.HALF_UP).doubleValue();    }    /**     * 相乘 取位 d1*d2 - 四舍五入     *      * @param scale     * @param dd     * @return     */    public static double doubleMultiplyScale(int scale, double... dd) {        BigDecimal result = BigDecimal.ONE;        for (double n : dd) {            result = result.multiply(new BigDecimal("" + n), mc);        }        return result.setScale(scale, RoundingMode.HALF_UP).doubleValue();    }    /**     * 将整数转化为四位数字     *      * @param number     * @return     */    public static String formatFourNumber(Integer number) {        return nf.format(number);    }    /**     * 获取带千分符并保留两位小数的金额     *      * @param amount     * @return     */    public static String formatNumber(double amount) {        String result = NumberFormat.getCurrencyInstance().format(amount).substring(1);        return result;    }	}

 

转载于:https://my.oschina.net/u/3551274/blog/1796786

你可能感兴趣的文章
KVM网络桥接设置方法
查看>>
Puppet学习手册:Puppet Yum安装
查看>>
我的友情链接
查看>>
ansible学习记录
查看>>
网思科技校园网计费解决方案
查看>>
我的友情链接
查看>>
携程 Apollo分布式部署
查看>>
2017 Hackatari Codeathon B. 2Trees(深搜)(想法)
查看>>
单词统计
查看>>
输入一个数字计算圆的面积
查看>>
在Delphi中隐藏程序进程
查看>>
AngularJS PhoneCat代码分析
查看>>
MEF元数据应用说明
查看>>
maven错误解决:编码GBK的不可映射字符
查看>>
2016/4/19 反射
查看>>
SharePoint Wiki发布页面的“保存冲突”
查看>>
oracle 10g 数据库与客户端冲突导致实例创建无监听问题
查看>>
Delphi中读取文本文件的方法(实例一)
查看>>
Linux常用命令
查看>>
Android开源代码解读の使用TelephonyManager获取移动网络信息
查看>>