Q&A

  • DBEdit에서 소숫점..버그
안녕하세요..

DBEdit에서 숫자를 입력하고 보면

소숫점아래 첫째자리에 1이나 2가 오면 0.0001을 빼서 저장이 되네요..

그니까 예를 들어

입력 : 191.1   -> 191.0999
입력 : 191.2   -> 191.1999
입력 : 191.3   -> 191.3
.
.
.
.


이렇게요..

이거..어떻게 해야 하나요?
오차가 생겨서 프로그램 진행을 못시키는데..

왜그런 문제가 생기는지 원..
고수님들의 경험을 비추어.. 해결부탁드립니다. ^^
1  COMMENTS
  • Profile
    이중철 2004.07.16 00:46
    double , extended, float 등으로 상호 변환되면서 CPU 레지스터단의
    gabage데이타로 인한 오류(오류도 아님 다른거 C, VB등등)라고 봅니다.
    입력할때도 문제지만 가져올때도 문제죠
    저는 이경우 아예 유효자리 계산로직을 사용해서 집어넣고 , 받고 합니다.
    유효자리 계산로직은 roundto 함수와 log10 함수를 사용해서 만들어 씁니다.
    참고로 중학교 수학책에 나오는 유효자리입니다. 소수점 몇자리 이거
    아닙니다.
    즉, 7892349093.432443 이란 데이타에서 유효자리가 6자리이면
    데이타는 789235000 입니다.