일반 수치형 연산 고려사항

황제낙엽 2007.01.25 14:12 조회 수 : 472 추천:176

sitelink1 http://www.javaservice.net/~java/bbs/rea...1042755526 
sitelink2  
sitelink3 http://1 
sitelink4 http://ko 
sitelink5  
sitelink6 http://sitelink1 

double형 데이터를 연산시 2진수로 처리하는 컴퓨터의 특성상 발생하게 되는 수치 연산 오류에 대한 내용이다.
결론은 BigDecimal을 사용하라는 거지만...
모든 수치연산은 BigDecimal을 이용하여 연산하라는 권유의 메세지


제목 : 정확한 금액 관련 처리?
글쓴이: 손님(guest) 2003/01/16 06:30:01 조회수:193 줄수:12
 
금액을 계산할 필요가 있을때...
double을 사용합니다. 
그런데.. String --> double 계산 할때..
소수점 이하의 오차가 생겨서.. 소숫점 이하를 버리면..
1원의 차가 발행하는 경우가 가끔 생깁니다.. 
즉,계산결과 1000원이 나와야 하는데, 결과가 999.99999987가 되어,
999원이 결과값이 나오는 경우가 있습니다.
물론, BigDecimal을 사용하면.. 정확한 계산을 할 수 있다는데..
조금.. 복잡하군요...

이러한 오차를 없앨 수 있는 방법을 알고 싶습니다. 

제목 : Re: 수치형 연산 고려사항
글쓴이: 이원영(javaservice) 2003/01/17 07:18:46 조회수:160 줄수:16
 
내부적 계산은 해당 수치형 유효숫자 범위내에서 그대로 연산되어야 하고,
최종적을 화면이나, DB에 저장되는 시점에서만, 필요하는 자릿수만큼 반올림되어야
겠지요.

참조자료:
8   [자바의 숫자표현] 어디까지 가능할까 !!!  
http://www.javaservice.net/~java/bbs/read.cgi?m=devtip&b=javatip&c=r_p&n=920434490
191   자료형에 관하여..  
http://www.javaservice.net/~java/bbs/read.cgi?m=devtip&b=javatip&c=r_p&n=1018121121

여담: 
214 int 형 정수의 자리수 체크는??? 
http://www.javaservice.net/~java/bbs/read.cgi?m=devtip&b=javatip&c=r_p&n=1028585454

자바서비스넷 이원영
번호 제목 글쓴이 날짜 조회 수
83 [Tip] 톰캣 JNDI DB POOL 설정하기 황제낙엽 2007.05.11 486
82 [javac 에러] code too large for try statement 황제낙엽 2007.02.28 544
81 JDBC 테스트 페이지 file 황제낙엽 2007.02.22 9263
80 [JDBC] URL 사용법 모음 황제낙엽 2007.02.21 1496
79 Exception Tunneling - C2 Wiki (last edited January 15, 2005) 황제낙엽 2007.02.08 1051
78 Java's checked exceptions were a mistake - Rod Waldhoff (1 April 2003) 황제낙엽 2007.02.08 605
77 Best Practices for Exception Handling by Gunjan Doshi (11/19/2003) 황제낙엽 2007.02.08 369
76 "Thinking in Java"의 저자인 Bruce Eckel의 Checked Exception에 대한 생각 황제낙엽 2007.02.06 381
» 수치형 연산 고려사항 황제낙엽 2007.01.25 472
74 시스템 속성(System Property) 얻기 및 설정하기 황제낙엽 2007.01.24 539
73 자바코딩을 위한 EditPlus설정법 황제낙엽 2003.05.16 426
72 SCJP 2002년 10월 정도의 버전 덤프들입니다. 황제낙엽 2002.12.29 541
71 Jakarta 프로젝트의 Regexp(정규식) 패키지 사용하기 황제낙엽 2007.01.22 285
70 PATTERN MATCHING (패턴 매칭) file 황제낙엽 2007.01.17 520
69 JAVA 와 XML (간단한 프로그램 예제) 황제낙엽 2006.08.31 459
68 getServerPort(), getLocalPort(), getRemotePort() 황제낙엽 2006.08.07 448
67 컨텐츠 타입에 대해서 황제낙엽 2006.08.07 509
66 서블릿의 생명주기 file 황제낙엽 2006.08.07 353
65 서블릿의 초기화 황제낙엽 2006.07.24 290
64 JSTL 황제낙엽 2006.02.17 520