세전가격 = 소비자가 / (1 + 세율(3,4,5 등) / 100.0)
세금 = 세후가격 * 세율 / 100.0
세후가격 = 세전가격 + 세금
>> 세전가격과 세금은 반비례 관계여서 하나를 올림처리하면 다른 하나는 알아서 내림처리한다.
>>그래서 세전가격을 구할 때 int형 정수형 계산으로 버림처리를 했지만, 사실 우리나라는 소비자가로 통용되어 계산이 불명확해진다.
>>이를 극복하기 위해서 세금을 따로 올림처리 내림처리를 해줘야 한다.
예시)
if ((double) (k34_TaxContainTotal / (1 + k34_taxrate / 100.0)) == (int) (k34_TaxContainTotal //세전 가격이 내림처리를 해줘야 하는 값일 때
/ (1 + k34_taxrate / 100.0))) {
k34_taxval = ((int) (k34_TaxContainTotal / (1 + k34_taxrate / 100.0))) * k34_taxrate / 100; // 세금은 올림처리 하지 않는다.
} else { // 세전 가격이 내림처리를 안해도 되는 값일 때
k34_taxval = ((int) (k34_TaxContainTotal / (1 + k34_taxrate / 100.0))) * k34_taxrate / 100 + 1; // 세금은 올림처리한다.
}
'WEB BANK-END > JAVA' 카테고리의 다른 글
java.sql.Date 클래스, java.util.Date 클래스 차이 (0) | 2020.07.15 |
---|---|
[java] 클래스패스 (classPath)란? (0) | 2020.07.09 |
자바 유효한 날짜 형식 체크 (0) | 2020.06.17 |
[java] 메소드 선언되지 않는데도 cloneable을 구현해야 하는 이유 (0) | 2020.05.29 |
super() (0) | 2020.05.29 |