2010. 12. 8. 11:08
이진소수점 계산할 때.. Study/Java2010. 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) 생성자를 사용하자.
'Study > Java' 카테고리의 다른 글
추상 클래스 (0) | 2010.12.09 |
---|---|
가급적 상속보다는 컴포지션을 사용하자. (0) | 2010.12.09 |
상속 (0) | 2010.12.08 |
이해안가던 자바퍼즐러6 Multicast (0) | 2010.12.08 |
[자바퍼즐러 3] 긴 나눗셈 (0) | 2010.12.08 |
compareTo (0) | 2010.11.16 |
equals 메소드를 오버라이드 할 때는 hashCode 메소드도 항상 같이 오버라이드 하자 (0) | 2010.11.12 |
equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자 (0) | 2010.11.11 |
equals 메소드를 오버라이딩 하기. (0) | 2010.11.11 |
finalizer의 사용을 피하자 (0) | 2010.11.09 |