• 精确计算工具类,提供加减乘除的计算


    package com.ljq.durian.common.util;
    
    import java.math.BigDecimal;
    import java.math.MathContext;
    import java.math.RoundingMode;
    
    /**
     * 精确计算工具类,提供加减乘除的计算
     *
     * @author jqlin
     */
    public class CompuUtils {
        /** 常量--0 */
        public static final int ZERO = 0;
        /** 常量--1 */
        public static final int ONE = 1;
        /** 常量-- -1 */
        public static final int MINUS_ONE = -1;
    
    
        /**
         * 大小比较
         * 
         * @param a
         * @param b
         * @return 返回1, 表示a大于b <br/>
         *         返回0 ,表示a等于b <br/>
         *         返回-1,表示a小于b
         * @author jqlin
         */
        public static int compareTo(String a, String b) {
            return new BigDecimal(a).compareTo(new BigDecimal(b));
        }
    
        /**
         * 加法运算
         * 
         * @param a 被加数
         * @param b 加数
         * @author jqlin
         */
        public static BigDecimal add(String a, String b) {
            MathContext mc = new MathContext(20, RoundingMode.HALF_UP);
            return new BigDecimal(a).add(new BigDecimal(b), mc);
        }
    
        /**
         * 累加运算
         * 
         * @param vals
         * @return
         * @author jqlin
         */
        public static int add(int... vals) {
            if (vals == null || vals.length <= 0) {
                return 0;
            }
    
            int sum = 0;
            for (int val : vals) {
                sum = sum + val;
            }
    
            return sum;
        }
    
        /**
         * 累加运算
         * 
         * @param vals
         * @return
         * @author jqlin
         */
        public static long add(long... vals) {
            if (vals == null || vals.length <= 0) {
                return 0L;
            }
    
            long sum = 0L;
            for (long val : vals) {
                sum = sum + val;
            }
    
            return sum;
        }
    
        /**
         * 减法运算
         * 
         * @param a 被减数
         * @param b 减数
         * @author jqlin
         */
        public static BigDecimal subtract(String a, String b) {
            MathContext mc = new MathContext(20, RoundingMode.HALF_UP);
            return new BigDecimal(a).subtract(new BigDecimal(b), mc);
        }
    
        /**
         * 乘法运算
         * 
         * @param a 被乘数
         * @param b 乘数
         * @author jqlin
         */
        public static BigDecimal multiply(String a, String b) {
            MathContext mc = new MathContext(20, RoundingMode.HALF_UP);
            return new BigDecimal(a).multiply(new BigDecimal(b), mc);
        }
    
        /**
         * 除法运算
         * 
         * @param a 被除数
         * @param b 除数
         * @author jqlin
         */
        public static BigDecimal divide(String a, String b) {
            return new BigDecimal(a).divide(new BigDecimal(b), 20, BigDecimal.ROUND_HALF_UP);
        }
    
        public static void main(String[] args) {
            System.out.println(divide("10", "4"));
        }
    }
    

      

  • 相关阅读:
    Windows Python+Eclipse环境配置
    infobright系列二:数据迁移
    infobright系列一:源码安装infobright
    autotools归纳
    Atlas系列一:Atlas功能特点FAQ
    C#反射技术概念作用和要点
    .net获取本机公网IP代码
    Java泛型-类型擦除
    现在就使用HTML5的十大原因
    让网页图片变灰色的三种方法
  • 原文地址:https://www.cnblogs.com/linjiqin/p/5550760.html
Copyright © 2020-2023  润新知