데이터베이스/MS-SQL 😃
mssql 의 money 와 decimal 그리고 float 의 차이점
재우니
2020. 11. 25. 18:25
mssql 의 money 와 decimal 그리고 float 의 차이점
그냥 간단하게 나누고 곱하는 값을 출력 테스트 했습니다.
float : 부동소수점
decimal : 실수 (numeric 동일)
money : 통화단위
dECLARE
@mon1 MONEY,
@mon2 MONEY,
@mon3 MONEY,
@mon4 MONEY,
@num1 DECIMAL(19,5), --소수점이하 자동반올림
@num2 DECIMAL(19,5),
@num3 DECIMAL(19,5),
@num4 DECIMAL(19,5),
@flo1 float, --부동소수점
@flo2 float,
@flo3 float,
@flo4 float
SELECT
@mon1 = 100, @mon2 = 339, @mon3 = 10000,
@num1 = 100, @num2 = 339, @num3 = 10000,
@flo1 = 100, @flo2 = 339, @flo3 = 10000
SET @mon4 = @mon1/@mon2*@mon3
SET @num4 = @num1/@num2*@num3
SET @flo4 = @flo1/@flo2*@flo3
SELECT @mon4 AS moneyresult,
@num4 AS decimalresult,
@flo4 AS floatresult
실행해보면, money 는 소수점 이하의 값을 지웁니다.
대신 decimal 은 그대로 버리지 않고 데이터를 가지고 있습니다. 단 '실수' 이므로 6자리 이하의 소수점을 반올림 하게 됩니다. (float 값을 보면 decimal 이 반올림한것을 확인이 가능합니다.)