SQL Server — Short Demo with Decimal Precision also Float or Int Conversion
2 min readMay 6, 2024
Intro about Numeric Precision
create table test_change_to_dem (
id int identity,
num1 numeric(20,6),
num2 numeric(16,4),
num3 numeric(18,4)
)
insert into test_num (num1,num2,num3)
values
(200.11111111,200.11111111,200.11111111)
(300.22222222,300.22222222,300.22222222)
create table test_change_to_decimal (
id int identity,
myint int,
myfloat float
)
Then we try to multiple and see the result of precision
select num1*num2*num3 from test_num
Then we try to insert back to the table to observe precision and rounding
You can see the rounding of the exceeding decimal point
The Integer and Float to numeric
insert into test_change_to_dem (myint,myfloat)
values (300.22222222,300.22222222)
insert into test_num (num1,num2,num3)
values (300.22222222,300.22222222,300.22222222)
There is time when we assume some data is just int
or float
but have to change it later to decimal
We will also demo the result / loss of date type change from int
and float
to decimal
alter table test_change_to_decimal alter column myint decimal(15,2)
alter table test_change_to_decimal alter column myfloat decimal(15,2)
select * from test_change_to_decimal
Bonus: Converting back
The effect is limited when converting back to int
and float
alter table test_change_to_decimal alter column myint int
alter table test_change_to_decimal alter column myfloat float
select * from test_change_to_decimal