[JAVA] Double형 반올림 (특정 자리수에서 절삭)





import java.math.BigDecimal;


public class Test {

    public static void main(String[] args) throws Exception
    {
        Test ts = new Test();
        double test =  ts.getTest(123.46666666, 2, "U"); // 입력값, 소수점 자리수, 변환타입
        System.out.println(test);
    }
   
   
    // num  : 입력값.
    // size : 소수점 자리수.
    // type : 변환 타입. (U-반올림, F-아무것도 안함, C-무조건 반올림, D-내림)

    public double getTest(double num, int size, String type)
    {
        BigDecimal returnData = null;
       
        if (type.equalsIgnoreCase("U")) {
            returnData = new BigDecimal(num).setScale(size, BigDecimal.ROUND_HALF_UP);
        } else if (type.equalsIgnoreCase("F")) {
            returnData = new BigDecimal(num).setScale(size, BigDecimal.ROUND_FLOOR);
        } else if (type.equalsIgnoreCase("C")) {
            returnData = new BigDecimal(num).setScale(size, BigDecimal.ROUND_CEILING);
        } else {
            returnData = new BigDecimal(num).setScale(size, BigDecimal.ROUND_DOWN);
        }
       
        // double형으로 형변환.
        return Double.parseDouble(returnData.toString());
    }
}

'언어 > Java' 카테고리의 다른 글

[JAVA5.0] 삼항연산자  (0) 2010.11.02
new  (0) 2010.10.27
Thread 간단 tip  (0) 2009.09.29
[JAVA5.0] 열거형 상수, enum 사용( Enumeration )  (0) 2009.03.24
[File] File 객체 생성하기.  (2) 2009.03.05