首页 > 代码库 > 科学计算法帮助类MathUtils

科学计算法帮助类MathUtils

import java.math.BigDecimal;import java.math.MathContext;import java.math.RoundingMode;import java.util.ArrayList;import java.util.List;/** * 科学计算数字的帮助类 * @author yzl * */public class MathUtils {    /**     * 返回科学计算后的乘法结果     * @param val1     * @param val2     * @param mc     * @return     */    public static double multiply(double val1,double val2,int mc) {        if(val1==0 || val2==0) return 0;        BigDecimal bg1 = new BigDecimal(val1);        BigDecimal bg2 = new BigDecimal(val2);        return bg1.multiply(bg2, new MathContext(mc,RoundingMode.HALF_UP)).doubleValue();    }    /**     * 返回科学计算后的除法结果     * @param fz  分子     * @param fm  分母     * @param mc  小数点精度     * @return     */    public static double divide(double fz,double fm,int mc) {        if(fz==0 || fm==0) return 0;        BigDecimal bg1 = new BigDecimal(fz);        BigDecimal bg2 = new BigDecimal(fm);        return bg1.divide(bg2, mc, BigDecimal.ROUND_HALF_UP).doubleValue();    }        /**     * 返回科学计算后的减法结果     * @param val1     * @param val2     * @param mc     * @return     */    public static double subtract(double val1,double val2,int mc) {        if(val2==0) return val1;        BigDecimal bg1 = new BigDecimal(val1);        BigDecimal bg2 = new BigDecimal(val2);        return bg1.subtract(bg2, new MathContext(mc,RoundingMode.HALF_UP)).doubleValue();    }        /**     * 返回科学计算后的加法结果     * @param val1     * @param val2     * @param mc     * @return     */    public static double add(double val1,double val2,int mc) {        BigDecimal bg1 = new BigDecimal(val1);        BigDecimal bg2 = new BigDecimal(val2);        return bg1.add(bg2, new MathContext(mc,RoundingMode.HALF_UP)).doubleValue();    }}

 

科学计算法帮助类MathUtils