java中double计算

发布时间:2022-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了java中double计算脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
public class ArIThHelPEr {    // 默认除法运算精度    PRivate static final int DEF_DIV_SCALE = 16;    // 这个类不能实例化    private ArithHelper() {    }    /**     * 提供精确的加法运算。     *     * @param v1 被加数     * @param v2 加数     * @return 两个参数的和     */    public static double add(double v1, double v2) {        java.math.BigDecimal b1 = new java.math.BigDecimal(Double.toString(v1));        java.math.BigDecimal b2 = new java.math.BigDecimal(Double.toString(v2));        return b1.add(b2).doubleValue();    }    public static double add(String v1, String v2) {        java.math.BigDecimal b1 = new java.math.BigDecimal(v1);        java.math.BigDecimal b2 = new java.math.BigDecimal(v2);        return b1.add(b2).doubleValue();    }    /**     * 提供精确的减法运算。     *     * @param v1 被减数     * @param v2 减数     * @return 两个参数的差     */    public static double sub(double v1, double v2) {        java.math.BigDecimal b1 = new java.math.BigDecimal(Double.toString(v1));        java.math.BigDecimal b2 = new java.math.BigDecimal(Double.toString(v2));        return b1.suBTract(b2).doubleValue();    }    public static double sub(String v1, String v2) {        java.math.BigDecimal b1 = new java.math.BigDecimal(v1);        java.math.BigDecimal b2 = new java.math.BigDecimal(v2);        return b1.subtract(b2).doubleValue();    }    /**     * 提供精确的乘法运算。     *     * @param v1 被乘数     * @param v2 乘数     * @return 两个参数的积     */    public static double mul(double v1, double v2) {        java.math.BigDecimal b1 = new java.math.BigDecimal(Double.toString(v1));        java.math.BigDecimal b2 = new java.math.BigDecimal(Double.toString(v2));        return b1.multiply(b2).doubleValue();    }    public static double mul(String v1, String v2) {        java.math.BigDecimal b1 = new java.math.BigDecimal(v1);        java.math.BigDecimal b2 = new java.math.BigDecimal(v2);        return b1.multiply(b2).doubleValue();    }    /**     * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 小数点以后10位,以后的数字四舍五入。     *     * @param v1 被除数     * @param v2 除数     * @return 两个参数的商     */    public static double div(double v1, double v2) {        return div(v1, v2, DEF_DIV_SCALE);    }    public static double div(String v1, String v2) {        java.math.BigDecimal b1 = new java.math.BigDecimal(v1);        java.math.BigDecimal b2 = new java.math.BigDecimal(v2);        return b1.divide(b2, DEF_DIV_SCALE, java.math.BigDecimal.ROUND_HALF_UP).doubleValue();    }    /**     * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。     *     * @param v1    被除数     * @param v2    除数     * @param scale 表示表示需要精确到小数点以后几位。     * @return 两个参数的商     */    public static double div(double v1, double v2, int scale) {        if (scale < 0) {            throw new IllegalargumentException("The   scale   must   be   a   positive   integer   or   zero");        }        java.math.BigDecimal b1 = new java.math.BigDecimal(Double.toString(v1));        java.math.BigDecimal b2 = new java.math.BigDecimal(Double.toString(v2));        return b1.divide(b2, scale, java.math.BigDecimal.ROUND_HALF_UP).doubleValue();    }    /**     * 提供精确的小数位四舍五入处理。     *     * @param v     需要四舍五入的数字     * @param scale 小数点后保留几位     * @return 四舍五入后的结果     */    public static double round(double v, int scale) {        if (scale < 0) {            throw new IllegalargumentException("The   scale   must   be   a   positive   integer   or   zero");        }        java.math.BigDecimal b = new java.math.BigDecimal(Double.toString(v));        java.math.BigDecimal one = new java.math.BigDecimal("1");        return b.divide(one, scale, java.math.BigDecimal.ROUND_HALF_UP).doubleValue();    }    public static double round(String v, int scale) {        if (scale < 0) {            throw new IllegalArgumentException("The   scale   must   be   a   positive   integer   or   zero");        }        java.math.BigDecimal b = new java.math.BigDecimal(v);        java.math.BigDecimal one = new java.math.BigDecimal("1");        return b.divide(one, scale, java.math.BigDecimal.ROUND_HALF_UP).doubleValue();    }}

脚本宝典总结

以上是脚本宝典为你收集整理的java中double计算全部内容,希望文章能够帮你解决java中double计算所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。