`

银行金钱计算专用工具类

阅读更多
public final class MoneyUtils {

    /**
     * 金额0.00。
     */
    public static final BigDecimal ZERO = BigDecimal.valueOf(0.00);

    /**
     * 金额100.00。
     */
    public static final BigDecimal HUNDRED = new BigDecimal(100.00);

    private MoneyUtils() {
        super();
    }

    /**
     * 四舍五入保留1位小数(四舍六入五成双)。
     *
     * @param amount 金额。
     * @return  四舍五入保留1位小数后金额。
     */
    public static BigDecimal decimal1ByUp(BigDecimal amount) {
        return amount.setScale(1, BigDecimal.ROUND_HALF_EVEN);
    }

    /**
     * 四舍五入保留2位小数(四舍六入五成双)。
     *
     * @param amount 金额。
     * @return  四舍五入保留2位小数后金额。
     */
    public static BigDecimal decimal2ByUp(BigDecimal amount) {
        return amount.setScale(2, BigDecimal.ROUND_HALF_EVEN);
    }

    /**
     * 四舍五入保留4位小数(四舍六入五成双)。
     *
     * @param amount 金额。
     * @return 四舍五入保留4位小数后金额。
     */
    public static BigDecimal decimal4ByUp(BigDecimal amount) {
        return amount.setScale(4, BigDecimal.ROUND_HALF_EVEN);
    }


    /**
     * 除法,四舍五入保留2位小数。
     *
     * @param divideAmount 金额。
     *  @param dividedAmount 被除的金额。
     * @return  四舍五入保留2位小数后金额。
     */
    public static BigDecimal divide2ByUp(BigDecimal divideAmount, BigDecimal dividedAmount) {
        return divideAmount.divide(dividedAmount,2, BigDecimal.ROUND_HALF_EVEN);
    }

    /**
     * 除法,四舍五入保留4位小数。
     *
     * @param divideAmount 金额。
     *  @param dividedAmount 被除的金额。
     * @return  四舍五入保留2位小数后金额。
     */
    public static BigDecimal divide4ByUp(BigDecimal divideAmount, BigDecimal dividedAmount) {
        return divideAmount.divide(dividedAmount,4, BigDecimal.ROUND_HALF_EVEN);
    }


    /**
     * 是否大于0。
     *
     * @param amount 金额。
     * @return true:大于0;false;小于等于0。
     */
    public static boolean isGreaterThanZero(BigDecimal amount) {
        return amount.compareTo(BigDecimal.ZERO) == 1;
    }

    /**
     * 是否小于0。
     *
     * @param amount 金额。
     * @return true:小于0;false:大于等于0。
     */
    public static boolean isLessThanZero(BigDecimal amount) {
        return amount.compareTo(BigDecimal.ZERO) == -1;
    }

    /**
     * 是否等于0。
     *
     * @param amount 金额。
     * @return true:等于0;false:大于小于0。
     */
    public static boolean isEqualZero(BigDecimal amount) {
        return amount.compareTo(BigDecimal.ZERO) == 0;
    }


    /**
     * 第一个是否大于第二个。
     *
     * @param first  金额。
     * @param second 金额。
     * @return true:first>second;false:first<=second。
     */
    public static boolean isGreaterThan(BigDecimal first, BigDecimal second) {
        return first.compareTo(second) == 1;
    }

    /**
     * 第一个是否小于第二个。
     *
     * @param first  金额。
     * @param second 金额。
     * @return true:first<second;false:first >=second。
     */
    public static boolean isLessThan(BigDecimal first, BigDecimal second) {
        return first.compareTo(second) == -1;
    }

    /**
     * 第一个是否等于第二个。
     *
     * @param first  金额。
     * @param second 金额。
     * @return true:first=second;false:first ><second。
     */
    public static boolean isEqual(BigDecimal first, BigDecimal second) {
        return first.compareTo(second) == 0;
    }

    public static  BigDecimal POINT_BILLION = new BigDecimal("100000000");
    public static  BigDecimal TEN_THOUSANDS = new BigDecimal("10000");

    /**
     * 金额格式化为,###.00的金额,即保留两位小数。
     *
     * @param amount 需要显示成字符传,###.###的金额。
     * @return  返回String,格式为,###.###。
     */
    public static String formatAmountAsString(BigDecimal amount) {
        return amount != null ? new DecimalFormat(",##0.00").format(amount) : "0.00";
    }

    /**
     * 将格式化的字符串金额反转为{@link BigDecimal}。
     *
     * @param amount 格式为,###.###。
     * @return {@link java.math.BigDecimal}。
     */
    public static BigDecimal parseAmount(String amount) {
        return new BigDecimal(amount.replaceAll(",", ""));
    }

 

分享到:
评论

相关推荐

    java银行工具类java银行工具类

    根据银行卡号获取银行的名称 银行的机构号 银行卡的卡的类型 银行卡的卡种 工具类是由java 编写 其他的开发语言 也可以参考 包含了4800 +种卡种 自己测试了 还是比较全的 比支付宝提供的接口返回的卡种还要全 读取...

    计算距离的工具类

    计算距离的工具类计算距离的工具类计算距离的工具类计算距离的工具类计算距离的工具类

    联想工程师专用小工具 整数分区计算工具V2.18.1

    联想工程师专用小工具 整数分区计算工具V2.18.1联想工程师专用小工具 整数分区计算工具V2.18.1联想工程师专用小工具 整数分区计算工具V2.18.1联想工程师专用小工具 整数分区计算工具V2.18.1联想工程师专用小工具 ...

    强大的时间计算工具类

    各种时间计算模型,各种时间转换格式,获取各种格式的时间,一一尽有

    Android快速开发系列 10个常用工具类 程序源码

    2. **DateUtil**: 时间日期处理工具类,通常包含将日期格式化为字符串,字符串转换为日期,计算两个日期之间的差值等功能。在Android开发中,这类工具类能帮助开发者更好地管理和展示时间数据。 3. **BitmapUtil**:...

    60多款机械类设计计算工具软件大全(包括锥齿轮计算 皮带机设计力学解器齿轮参数计算等 ).zip

    60多款机械类设计计算工具软件大全(包括锥齿轮计算 皮带机设计力学解器齿轮参数计算等 ): cass坐标转换工具软件 五金手册软件 公差查询器 公法线长度计算 冲床运动分析软件 减速器设计及齿轮参数计算系统V4.0 凸轮...

    C#常用工具类代码集合Util第二版本(自己工作总结)

    C#常用工具类代码集合Util第二版本(自己工作总结),包括常用工具类,扩展方法工具类,百度地图C#工具类,Echart工具类,Office工具类,Autofac工具类,Web开发常用工具类,Winform开发常用工具类,是自己工作十年...

    java常用工具类打包下载

    J2EE常用工具类汇总 J2EE常用工具类—Value Object工具类 J2EE常用工具类—Json工具 J2EE常用工具类—Jdbc操作 J2EE常用工具类—Hibernate操作 J2EE常用工具类—Cookie操作 J2EE常用工具类—数组操作 J2EE...

    STM32定时器计算工具

    STM32定时器计算工具是专为STM32微控制器设计的一款实用软件,它简化了在嵌入式系统开发过程中对定时器配置的复杂计算。STM32是意法半导体(STMicroelectronics)推出的基于ARM Cortex-M内核的微控制器系列,广泛...

    Xml和Json互转工具类

    本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。

    经纬度和方位计算小工具

    经纬度和方位计算小工具是一款专门用于地理信息处理的应用,主要功能涵盖了基于经纬度的多种计算,如两点之间的距离和方位角的确定,以及通过已知条件反推未知点的经纬度。这些功能在地理信息系统(GIS)、导航系统...

    RC吸收电路计算工具.xls

    RC吸收电路计算工具

    TCP/IP校验和计算小工具

    "TCP/IP校验和计算小工具"就是专为这个目的设计的实用程序,它可以帮助网络技术人员快速、准确地计算和验证TCP/IP数据包的校验和。 TCP(传输控制协议)和IP(互联网协议)都是TCP/IP协议族的重要组成部分。TCP负责...

    bos万能工具类

    这是bos开发使用的工具类,大概一千多行代码,包括获取当前组织,用户,自定义编码规则等等等等实用的方法,这是一朋友给我的,我在做金蝶开发的时候,帮了我很多很多!感兴趣的可以下来看看,每个方法都有注释

    java中ping命令ping工具类(循环ping)

    java中ping命令ping工具类(循环ping) java ping ip ping命令 ping工具类 支持linux和windows等所有平台 Ping是Windows下的一个命令 在Unix和Linux下也有这个命令。 ping也属于一个通信协议,是TCP/IP协议的一部分 ...

    计算阶乘 java

    java 阶乘计算 呵呵呵呵呵呵呵呵呵呵呵

    校验码计算小工具

    该工具主要应用于校验码的计算,包含异或,校验和8位,校验和16位,生成0xFF的格式,和复制到剪切板,是编程通信协议的好帮手,基于VS2010上编译生成的MFC工具。

    沸点-压力计算工具.rar

    这款名为"沸点-压力计算工具"的应用程序,就是为了解决这一问题而设计的。 首先,我们要理解沸点的概念。沸点是指一种液体在其蒸气压等于外界大气压时的温度,此时液体与蒸汽可以共存,并且会发生沸腾现象。不同的...

    高并发订单号生成工具类

    高并发订单号生成工具类,TWITTER编码方式可BAIDU

    二阶滤波器计算工具

    在这个"二阶滤波器计算工具"中,用户可以利用该软件进行电容值的计算以及频率响应的相关分析,这对于电子工程师和相关领域的技术人员来说,是一个非常实用的辅助设计工具。 首先,我们要理解二阶滤波器的基本原理。...

Global site tag (gtag.js) - Google Analytics