Java double 형식 데이터 사 칙 연산

3373 단어 Java
import java.math.BigDecimal;

public class DoubleArith {

    public static double add(double augend, double addend) {
        BigDecimal augendDecimal = new BigDecimal(Double.toString(augend));
        BigDecimal addendDecimal = new BigDecimal(Double.toString(addend));
        return augendDecimal.add(addendDecimal).doubleValue();
    }

    public static double subtract(double minuend, double subtrahend) {
        BigDecimal minuendDecimal = new BigDecimal(Double.toString(minuend));
        BigDecimal subtrahendDecimal = new BigDecimal(Double.toString(subtrahend));
        return minuendDecimal.subtract(subtrahendDecimal).doubleValue();
    }

    public static double multiply(double multiplicand, double multiplier) {
        BigDecimal multiplicandDecimal = new BigDecimal(Double.toString(multiplicand));
        BigDecimal multiplierDecimal = new BigDecimal(Double.toString(multiplier));
        return multiplicandDecimal.multiply(multiplierDecimal).doubleValue();
    }

    public static double divide(double dividend, double divisor, int scale) {
        if (scale < 0) {
            throw new IllegalArgumentException("The scale must be a positive integer or zero");
        }
        BigDecimal dividendDecimal = new BigDecimal(Double.toString(dividend));
        BigDecimal divisorDecimal = new BigDecimal(Double.toString(divisor));
        return dividendDecimal.divide(divisorDecimal, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    public static double round(double originalNum, int scale) {
        return divide(originalNum, 1.0D, scale);
    }
}

좋은 웹페이지 즐겨찾기