标签:
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(); } }
标签:
原文地址:http://www.cnblogs.com/yangzhilong/p/4195578.html