A
aKnightChen
Unregistered / Unconfirmed
GUEST, unregistred user!
我的小系统中,打算金额保留9位运算精度,
因此,我定义为:DECIMAL(24,9)
但,好像MSSQL只运算6位精度。
如下:
declare @a decimal(18,2)
declare @b decimal(18,4)
declare @c decimal(18,8)
declare @d decimal(18,10)
set @a=1.23
set @b=1.2345
set @c=1.23456745
set @d=@a*@b*@c
select @d
-- MSSQL运算结果为:1.8746100000
select 1.23*1.2345*1.23456745
-- MSSQL运算结果为(可能当成Float来算): 1.87461042594075
请问一下,想要保留9位精度,又想是DECIMAL,应如何操作?
小弟先谢谢各位大哥了!
因此,我定义为:DECIMAL(24,9)
但,好像MSSQL只运算6位精度。
如下:
declare @a decimal(18,2)
declare @b decimal(18,4)
declare @c decimal(18,8)
declare @d decimal(18,10)
set @a=1.23
set @b=1.2345
set @c=1.23456745
set @d=@a*@b*@c
select @d
-- MSSQL运算结果为:1.8746100000
select 1.23*1.2345*1.23456745
-- MSSQL运算结果为(可能当成Float来算): 1.87461042594075
请问一下,想要保留9位精度,又想是DECIMAL,应如何操作?
小弟先谢谢各位大哥了!