All Downloads are FREE. Search and download functionalities are using the official Maven repository.

system.base.MathTool Maven / Gradle / Ivy

package system.base;

import java.math.BigDecimal;

/**
 *
 * @author wangchunzi
 */
final public class MathTool {

    /**
     * 对x进行小数点精确。
     *
     * @param x double
     * @param i int
     * @return double
     */
    final public static double scale(double x, int i) {
        return BigDecimal.valueOf(x).setScale(i, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    /**
     * 将两数相加
     *
     * @param x double
     * @param x2 double
     * @param scale int 精确几位小数点。
     * @return double
     */
    final static double add(final double x, final double x2, final int scale) {
        BigDecimal bd = new BigDecimal(x);
        BigDecimal bd2 = new BigDecimal(x2);
        return bd.add(bd2).setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    /**
     * 将两数相减
     *
     * @param x double
     * @param x2 double
     * @param scale int 精确几位小数点。
     * @return double
     */
    final static double subtract(final double x, final double x2, final int scale) {
        BigDecimal bd = new BigDecimal(x);
        BigDecimal bd2 = new BigDecimal(x2);
        return bd.subtract(bd2).setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    /**
     * 将两数相乘
     *
     * @param x double
     * @param x2 double
     * @param scale int 精确几位小数点。
     * @return double
     */
    final static double multiply(final double x, final double x2, final int scale) {
        BigDecimal bd = new BigDecimal(x);
        BigDecimal bd2 = new BigDecimal(x2);
        BigDecimal m = bd.multiply(bd2);
        return m.setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    /**
     * 将两数相除
     *
     * @param x double
     * @param x2 double
     * @param scale int 精确几位小数点。
     * @return double
     */
    final static double divide(final double x, final double x2, final int scale) {
        BigDecimal bd = new BigDecimal(x);
        BigDecimal bd2 = new BigDecimal(x2);
        return bd.divide(bd2).setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy