[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());
}
}