programing

데이터베이스에서 숫자의 정밀도와 척도를 어떻게 해석합니까?

closeapi 2023. 4. 26. 23:21
반응형

데이터베이스에서 숫자의 정밀도와 척도를 어떻게 해석합니까?

다음 열이 데이터베이스에 지정되어 있습니다. 십진수(5,2)

이것을 어떻게 해석합니까?

SQL Server Management studio에서 볼 수 있는 열의 속성을 보면 십진수(숫자 정밀도, 숫자 척도)를 의미하는 것을 알 수 있습니다.

정밀도와 규모는 실제적으로 무엇을 의미합니까?

5자리 숫자와 2자리 숫자를 가진 소수로 해석하기 쉬울 것입니다...12345.12

추신. 저는 동료의 정답을 알아낼 수 있었지만 온라인에서 정답을 찾는 데 큰 어려움을 겪었습니다.따라서 향후 참조를 위해 스택 오버플로에 대한 질문과 답변을 여기에 문서화했으면 합니다.

숫자 정밀도는 숫자에 포함된 최대 자릿수를 나타냅니다.

1234567.89의 정밀도는 9입니다.

숫자 척도는 최대 소수 자릿수를 나타냅니다.

123456.789의 척도는 3입니다.

따라서 소수점(5,2)의 최대 허용 값은 999.99입니다.

숫자의 정밀도는 자릿수입니다.

숫자의 척도는 소수점 뒤의 자릿수입니다.

필드 정의에서 정밀도와 척도를 설정할 때 일반적으로 암시되는 것은 최대값을 나타낸다는 것입니다.

예제, 다음으로 정의된 10진수 필드precision=5그리고.scale=2는 다음 값을 허용합니다.

  • 123.45(p=5,s=2)
  • 12.34(p=4,s=2)
  • 12345(p=5,s=0)
  • 123.4(p=4,s=1)
  • 0(p=0,s=0)

다음 값은 허용되지 않거나 데이터 손실을 초래할 수 있습니다.

  • 12.345(p=5,s=3) => 다음으로 잘릴 수 있습니다.12.35(p=4,s=2)
  • 1234.56(p=6,s=2) => 다음으로 잘릴 수 있습니다.1234.6(p=5,s=1)
  • 123.456(p=6,s=3) => 다음으로 잘릴 수 있습니다.123.46(p=5,s=2)
  • 123450(p=6,s=0) => 범위를 벗어남

범위는 일반적으로 정밀도로 정의됩니다.|value| < 10^p...

SQL Server 2000 설명서의 정밀도, 축척 및 길이는 다음과 같습니다.

정밀도는 숫자의 자릿수입니다.척도는 숫자의 소수점 오른쪽에 있는 자릿수입니다.예를 들어 123.45라는 숫자는 정밀도가 5이고 척도가 2입니다.

정밀도는 전체 자릿수를 나타내며 척도는 소수점 뒤에 허용되는 자릿수를 나타냅니다.에 의해 인용된 예제의 정밀도는 7이고 척도는 2입니다.

또한 DECTION(정밀, 척도)은 대략적인 숫자 데이터를 저장하는 FLOAT(정밀, 척도)와 달리 정확한 값 데이터 유형입니다.예를 들어, FLOAT(7,4)로 정의된 열은 -999.999로 표시됩니다.MySQL은 값을 저장할 때 반올림을 수행하므로 999.00009를 FLOAT(7,4) 열에 삽입하면 대략적인 결과는 999.0001입니다.

이게 도움이 된다면 알려주세요!

언급URL : https://stackoverflow.com/questions/2377174/how-do-i-interpret-precision-and-scale-of-a-number-in-a-database

반응형