반응형
SQL Server에서 int를 데이터 형식 숫자로 변환하는 산술 오버플로 오류가 발생하는 이유는 무엇입니까?
이 코드를 실행할 때 SQL Server Management Studio 에서 오류가 발생 합니다.
declare @percentage numeric(3,2)
set @percentage = cast(15 as numeric(3,2))
하지만 숫자 선언을 다음과 같이 변경하면
declare @percentage numeric(4,2)
set @percentage = cast(15 as numeric(4,2))
모든 것이 잘됩니다.
숫자 데이터 유형에 제한이 있습니까?
숫자는 총 자릿수를 정의한 다음 소수점 이하 숫자를 정의합니다.
숫자 (3,2)는 9.99까지만 저장할 수 있습니다.
숫자 (3,2)를 보겠습니다. 즉, 데이터를위한 3 자리가 있고 그중 2 자리는 소수점 오른쪽에 있고 소수점 왼쪽에는 1 자리 만 남습니다. 15는 소수점 왼쪽에 두 자리가 있습니다. BTW 값이 100이면 숫자 (5, 2)로 늘릴 것입니다.
NUMERIC(3,2)
의미 : 총 3 자리, 소수점 뒤 2 자리. 따라서 소수점 앞에 하나의 소수점 만 있습니다.
시도하십시오 NUMERIC(5,2)
-소수점 앞 세 개, 소수점 뒤 두 개.
정밀도와 규모는 종종 오해를받습니다. numeric (3,2)에서는 전체적으로 3 자리를 원하지만 소수점 오른쪽에 2 자리를 원합니다. 15 => 15.00을 원하면 선행 1이 오버플로를 일으 킵니다 (소수점 오른쪽에 2 자리를 원하면 왼쪽에 한 자리 만 더 들어갈 수 있기 때문입니다). 4,2에서는 4 자리 숫자가 모두 맞기 때문에 문제가 없습니다.
반응형
'Programing' 카테고리의 다른 글
원격 Windows 서비스 중지 / 시작 및 열기 / 닫기 대기 (0) | 2020.11.14 |
---|---|
네임 스페이스의 기능을 나열하는 방법은 무엇입니까? (0) | 2020.11.14 |
jquery에서이 날짜에서 일주일을 어떻게 빼나요? (0) | 2020.11.13 |
Rakefile에서 bash 명령 실행 (0) | 2020.11.13 |
TLS 1.2를 사용하도록 .NET 웹 서비스 업데이트 (0) | 2020.11.13 |