1. 程式人生 > >精確的double加減乘除運算工具類

精確的double加減乘除運算工具類

spa 減法 java return static tostring math 精確 divide

import java.math.BigDecimal;


/**
 * 精確的double加減乘除運算
 * @author cyf
 *
 */
public class DoubleUtil {
    
     /**
     * 提供精確的加法運算。
     *
     * @param v1
     *            被加數
     * @param v2
     *            加數
     * @return 兩個參數的和
     */

    public static double add(double v1, double v2)
    {
        BigDecimal b1 
= new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.add(b2).doubleValue(); } /** * 提供精確的減法運算。 * * @param v1 * 被減數 * @param v2 * 減數 * @return 兩個參數的差 */ public static
double sub(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.subtract(b2).doubleValue(); } /** * 相除 */ /** * * 兩個Double數相除 * * * @param v1 * *
@param v2 * * @return Double */ public static int div(double v1, double v2) { BigDecimal b1 = new BigDecimal(v1+""); BigDecimal b2 = new BigDecimal(v2+""); return (int)b1.divide(b2, 1, BigDecimal.ROUND_HALF_UP) .doubleValue(); } /** * 提供精確的乘法運算。 * @param v1 被乘數 * @param v2 乘數 * @return 兩個參數的積 */ public static double mul(double v1,double v2){ BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.multiply(b2).doubleValue(); } }


備忘 有問題請大神指證

精確的double加減乘除運算工具類