1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | declare @y decimal(30,20) , @scaleFactor decimal(30,20) , @con decimal(30,20) set @y = -48252.00000000000000000000 set @scaleFactor = 0.9999000000000000100000000 @con = @y/@scaleFactor @con = -48256.82568256000000000000 | cs |
저 공식을 계산기로 연산할 경우
-48256.825682568256343066049779295 값이 나온다.
-48256.8256825682563430 값이 나온다.
select로 연산할 경우와 계산기로 연산할 경우 일치한다.
* DECIMAL,NUMERIC
- NUMERIC 또는 DECIMAL 데이터 타입은 정확한 수치를 나타낸다. 다음과 같이 정밀도와 스케일을 옵션으로 지정하여
정의할 수도 있다. 정밀도 p가 생략되면 정밀도의 디폴트 값은 15, 스케일 s가 생략되면 스케일의 디폴트 값은 0이다. 정밀도의
최소값은 1이고, 최대값은 38이다.
decimal(p,[s])
decimal에 55555.3333을 지정하면 55555가 저장됨(스케일 디폴트 값은 0이므로 소수점 뒤의 수치는 모두 절삭됨).
decimal(5)에 555.33을 지정하면 555가 저장됨(스케일 디폴트 값은 0이므로 소수점 뒤의 수치는 모두 절삭됨).
decimal(9,4)에 55555.3333을 지정하면 55555.3333가 저장됨.
decimal(3,4)을 선언하면 오류가 발생됨 (정밀도가 스케일보다 작기 때문에 오류).
decimal(4,4)에 .533333을 지정하면 .5333가 저장됨(정밀도가 4이므로 소수점 4자리 밑은 절삭됨).
------------------------------------------------------------------------------------------------
declare @y decimal(8,2) , @scaleFactor decimal(20,17) , @con decimal(30,20)
로 수정할 경우
-48256.825682568256으로 연산 된다.
'IT' 카테고리의 다른 글
[데이터베이스]mssql과 mysql 정렬 방식 차이 (0) | 2019.04.04 |
---|---|
[python] python 설치 및 환경 설정(visual code 기준) (0) | 2019.04.02 |
ATL 단순 개체 스레딩 모델 (0) | 2019.03.06 |
[visual studio]SDL(Security Development Lifecycle) 검사 (0) | 2019.03.06 |
[MFC]dll 만들기 및 idl 추가 (0) | 2019.03.05 |