일반 수치형 연산 고려사항

황제낙엽 2007.01.25 14:12 조회 수 : 672 추천: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

자바서비스넷 이원영
번호 제목 글쓴이 날짜 조회 수
86 [BPP] 게시판 페이징 로직 분석 - (2) 간단한 페이징 기법 황제낙엽 2007.06.08 996
85 [BPP] 게시판 페이징 로직 분석 - (1) 클래스 목록 file 황제낙엽 2007.06.06 576
84 문자열의 앞뒤space제거처리 성능체크 황제낙엽 2007.06.03 547
83 간단한 서블릿 예제들 file 황제낙엽 2007.05.12 522
82 [Tip] 톰캣 JNDI DB POOL 설정하기 황제낙엽 2007.05.11 935
81 [javac 에러] code too large for try statement 황제낙엽 2007.02.28 902
80 JDBC 테스트 페이지 file 황제낙엽 2007.02.22 9879
79 [JDBC] URL 사용법 모음 황제낙엽 2007.02.21 2187
78 Exception Tunneling - C2 Wiki (last edited January 15, 2005) 황제낙엽 2007.02.08 1319
77 Java's checked exceptions were a mistake - Rod Waldhoff (1 April 2003) 황제낙엽 2007.02.08 817
76 Best Practices for Exception Handling by Gunjan Doshi (11/19/2003) 황제낙엽 2007.02.08 599
75 "Thinking in Java"의 저자인 Bruce Eckel의 Checked Exception에 대한 생각 황제낙엽 2007.02.06 634
» 수치형 연산 고려사항 황제낙엽 2007.01.25 672
73 시스템 속성(System Property) 얻기 및 설정하기 황제낙엽 2007.01.24 742
72 자바코딩을 위한 EditPlus설정법 황제낙엽 2003.05.16 693
71 SCJP 2002년 10월 정도의 버전 덤프들입니다. 황제낙엽 2002.12.29 767
70 Jakarta 프로젝트의 Regexp(정규식) 패키지 사용하기 황제낙엽 2007.01.22 662
69 PATTERN MATCHING (패턴 매칭) file 황제낙엽 2007.01.17 940
68 JAVA 와 XML (간단한 프로그램 예제) 황제낙엽 2006.08.31 787
67 getServerPort(), getLocalPort(), getRemotePort() 황제낙엽 2006.08.07 683