메인 콘텐츠로 건너뛰기
Waters Korea

Custom Field가 예상대로 반올림되지 않습니다. - wkb100025

Article number: 100025To English version

환경

  • Empower
  • 사용자 정의 필드

답변

고객은 (Avgwt_FP) 다른 사용자 정의 필드 출력을 2 d.p로 자르기 위해 다음과 같은 사용자 정의 필드를 가지고 있습니다.         

Avgwt_FP               ROUND((Avg_wt_FP+0.005),-2)-0.01

여기서                  Avg_wt_FP = Weight_Tabs/Num_of_Tabs 

Empower 내부적으로 값을 나타내기 위해 이중 부동 소수점 숫자를 사용하며 부동 소수점 값으로 인해 불일치가 발생할 수 있습니다.

숫자가 컴퓨터 구현에서 지원되는 기본 부동 소수점 표현이 아닌 일부 형식으로 표시되는 경우 해당 구현에서 사용하려면 먼저 변환이 필요합니다. 숫자가 부동 소수점 형식으로 정확하게 표시될 수 있으면 변환이 정확합니다. 정확한 표현이 없는 경우 변환 시 원래 값을 나타내는 데 사용할 부동 소수점 숫자를 선택해야 합니다. 선택된 표현은 원래 값과 다른 값을 가지며, 이렇게 조정된 값을 반올림된 값이라고 합니다.

clipboard_ef6db04a93fdec0d7fe5a9306b29b3035.png

예상 값은 다음과 같습니다.

142.940 + 0.005 = 142.945

이는 = 142.95d.p.

142.95 - 0.01 = 142.94

 

십진수를 부동 소수점으로 변환하고 자르기 계산을 수행하는 경우:

142.940 = 142.9399999999999772626324556767940521240234375
 
0.005 = 142.9449..etc를 추가하고 2.d.p로 반올림합니다. = 142.94
 
그런 다음 142.94 - 0.01 = 142.93

Empower 에서 제공하는 값입니다.

추가 정보

Oracle과 Windows가 값을 처리하는 방식에도 차이가 있습니다. 예를 들어, Oracle은 BCD(Binary Coded Decimal) 이중 부동 소수점 형식을 사용하지만 Windows는 IEEE 이중 부동 소수점 형식을 사용합니다. BCD가 더 정확한 Method입니다.

https://www.waters.com/waters/support.htm?lid=1851937&cid=511442&type=TECN

https://www.exploringbinary.com/floating-point-converter/[1]

https://www.theregister.com/2006/08/12/floating_point_Approximation/

https://en.wikipedia.org/wiki/Floating-point_arithmetic

https://docs.microsoft.com/ko-kr/office/troubleshoot/access/floating-calculations-info

id100025, EMP2LIC, EMP2OPT, EMP2SW, EMP3GC, EMP3LIC, EMP3OPT, EMP3SW, EMPGC, EMPGPC, EMPLIC, EMPOWER2, EMPOWER3, EMPSW, review, SUP, 리뷰

  • 이 기사가 도움이 되셨나요?