안녕하세요...델코 애용자입니다.
(질문으로)
저희 회사에서는 델파이로 개발을 끝내고 업무에 실제 적용을 하고 있습니다.
그런데... Round 함수가 이상한 결과값을 준다는 사실을 몇일전에 알았습니다.
여러 데이타를 비교해도 이상해서 계산기까지 수동으로 두들겨 보았지요...
예를들어 Round(11.0562 * 112,000) => 1,238,294 (참인 결과값)
그런데, 1,238,295 라는 결과값이 떨어지는 것입니다.
같이 작업을 하셨던 분들도 이런 말씀을 하시더군요...
' 델파이에서 쓰는 Round 함수는 아무래도 4부터 반올림을 하는 것 같다'라구요...
보기에는 1원 차이지만,,, 업무상 오차는 용납되지 않는 곳이 사회이게에... =.=;;
저희가 함수를 더 거창하게 쓰거나 한 것도 없구요.
단지 곱한값을 round 한것 밖에는 없거든요.
물론 SQL문을 돌려서 쓰면 문제는 해결되겠지만 Round를 쓴 .pas 파일이 한둘이
아닌지라 해결책을 문의 드립니다.
정말 급합니다. 빠른 답변 부탁드리겠습니다.
고맙습니다. 이만 총총. *^^*
> 안녕하세요...델코 애용자입니다.
>
> (질문으로)
> 저희 회사에서는 델파이로 개발을 끝내고 업무에 실제 적용을 하고 있습니다.
> 그런데... Round 함수가 이상한 결과값을 준다는 사실을 몇일전에 알았습니다.
> 여러 데이타를 비교해도 이상해서 계산기까지 수동으로 두들겨 보았지요...
>
> 예를들어 Round(11.0562 * 112,000) => 1,238,294 (참인 결과값)
> 그런데, 1,238,295 라는 결과값이 떨어지는 것입니다.
>
> 같이 작업을 하셨던 분들도 이런 말씀을 하시더군요...
> ' 델파이에서 쓰는 Round 함수는 아무래도 4부터 반올림을 하는 것 같다'라구요...
>
> 보기에는 1원 차이지만,,, 업무상 오차는 용납되지 않는 곳이 사회이게에... =.=;;
> 저희가 함수를 더 거창하게 쓰거나 한 것도 없구요.
> 단지 곱한값을 round 한것 밖에는 없거든요.
>
> 물론 SQL문을 돌려서 쓰면 문제는 해결되겠지만 Round를 쓴 .pas 파일이 한둘이
> 아닌지라 해결책을 문의 드립니다.
>
> 정말 급합니다. 빠른 답변 부탁드리겠습니다.
> 고맙습니다. 이만 총총. *^^*
>
저도 이런 경우를 봤는데.
Round함수에 수식을 넣어면 오차가 발생하고...
예1) t2 := Round(1293/100 * 100)
변수를 이용하는경우...
예2) t1 := 1293/100 * 100
t2 := round(t1);
위의 예제에서는 오류가 없지만 예1)과 예2)의 경우 다른 결과 값이 나오는
경우가 있었습니다.
예2)와 같이 변수를 이용해보세요...