Study/Java
이진소수점 계산할 때..
유쾌한순례자
2010. 12. 8. 11:08
자바퍼즐러 퍼즐2
결론 : 정확한 답을 요구하는 곳에서는 float 타입과 double 타입을 피하고 금전 계산에서는 int,long 또는 BigDecimal
을 사용할 것.
위의 식에서 System.out.println(2.00 - 1.10) 을 그대로 할 경우 이진부동소수점 계산이 되기 때문에..
근사값으로 계산되기 때문에 BigDecimal을 이용함.
※ BigDecimal(double)이 아닌 BigDecimal(String) 생성자를 사용하자.
결론 : 정확한 답을 요구하는 곳에서는 float 타입과 double 타입을 피하고 금전 계산에서는 int,long 또는 BigDecimal
을 사용할 것.
public class Change{
public static void main(String args[]){
System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10"));
}
위의 식에서 System.out.println(2.00 - 1.10) 을 그대로 할 경우 이진부동소수점 계산이 되기 때문에..
근사값으로 계산되기 때문에 BigDecimal을 이용함.
※ BigDecimal(double)이 아닌 BigDecimal(String) 생성자를 사용하자.