栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

分子分母计算工具类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

分子分母计算工具类

java计算百分比值的方法,涉及java数值运算的技巧

分子作被除数,分母作除数(分母不为0),运算结果和整数一起对应全部有理数

BigDecimalUtil工具类

import java.math.BigDecimal;

public class BigDecimalUtil {

    private BigDecimalUtil() {
    }


    private static final int ZERO = 0;


    
    public static Boolean isSmallZero(BigDecimal value1) {
        return getNotNullValue(value1).compareTo(new BigDecimal(ZERO)) < ZERO;

    }

    
    public static Boolean isBigZero(BigDecimal value1) {
        return getNotNullValue(value1).compareTo(new BigDecimal(ZERO)) > ZERO;

    }

    
    public static BigDecimal getNotNullValue(BigDecimal value) {
        return null == value ? new BigDecimal(ZERO) : value;
    }

    
    public static BigDecimal add(BigDecimal v1, BigDecimal v2) {
        return getNotNullValue(v1).add(getNotNullValue(v2));

    }

    
    public static BigDecimal add(BigDecimal v1, BigDecimal v2, BigDecimal v3) {
        return getNotNullValue(v1).add(getNotNullValue(v2).add(getNotNullValue(v3)));

    }


    
    public static BigDecimal subtract(BigDecimal value1, BigDecimal value2) {
        return getNotNullValue(value1).subtract(getNotNullValue(value2));
    }


    
    public static BigDecimal multiply(BigDecimal value1, BigDecimal value2) {
        return getNotNullValue(value1).multiply(getNotNullValue(value2));
    }

    
    public static BigDecimal divide(BigDecimal value1, BigDecimal value2, int scale) {
        return value1.divide(value2, scale, BigDecimal.ROUND_HALF_UP);
    }
}

百分比计算工具类

import java.math.BigDecimal;


public class PercentageUtil {


    
    public static final int PERCENTAGE = 100;


    private PercentageUtil() {
    }


    
    public static BigDecimal getDenominator(long value1, long value2) {
        return BigDecimalUtil.add(new BigDecimal(value1), new BigDecimal(value2));
    }

    
    public static BigDecimal getDenominator(String value1, String value2) {
        return BigDecimalUtil.add(new BigDecimal(value1), new BigDecimal(value2));
    }


    
    public static BigDecimal getDenominator(long value1, long value2, long value3) {
        return BigDecimalUtil.add(new BigDecimal(value1), new BigDecimal(value2), new BigDecimal(value3));
    }

    
    public static BigDecimal getDenominator(String value1, String value2, String value3) {
        return BigDecimalUtil.add(new BigDecimal(value1), new BigDecimal(value2), new BigDecimal(value3));
    }

    
    public static BigDecimal getDenominator1(String... args) {
        BigDecimal denominator = BigDecimal.ZERO;
        for (String arg : args) {
            denominator = denominator.add(new BigDecimal(arg));
        }
        return denominator;
    }


    
    public static BigDecimal getComputePercent(long numerator, long denominator, int scale) {
        BigDecimal result = new BigDecimal(numerator).multiply(new BigDecimal(100))
            .divide(new BigDecimal(denominator), scale, BigDecimal.ROUND_HALF_UP);
        return result;
    }


    
    public static BigDecimal getComputePercent(String numerator, String denominator, int scale) throws IllegalAccessException {
        BigDecimal result = BigDecimalUtil.multiply(new BigDecimal(numerator), new BigDecimal(PERCENTAGE));
        return BigDecimalUtil.divide(result, new BigDecimal(denominator), scale);
    }


    public static void main(String[] args) throws IllegalAccessException {

        //分母1
        BigDecimal sum = getDenominator("298", "34123", "65789");


        //百分比1
        BigDecimal percentt1 = getComputePercent("298", sum.toString(), 2);
        BigDecimal percentt2 = getComputePercent("34123", sum.toString(), 2);
        BigDecimal percentt3 = getComputePercent("65789", sum.toString(), 2);

        System.out.println(percentt1 + "%");
        System.out.println(percentt2 + "%");
        System.out.println(percentt3 + "%");


        BigDecimal test = getDenominator1("298", "34123", "65789");

        System.out.println(" 分母1 " + sum);
        System.out.println(" 分母2 " + test);
    }
}

测试结果如下

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324879.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号