日期:2014-05-18  浏览次数:20340 次

求助!浮点书存入时,出现不希望的自动舍入!!!
sql server 2000中创建一个表,并插入数据,再检索数据!
CREATE TABLE test (
[total_times] [int] NOT NULL ,
[qz_change] [numeric](18, 3) NOT NULL ,
[qz_total] [numeric](18, 3) NOT NULL 
) ON [PRIMARY]

declare @a decimal,@b decimal,@c int
select @a=3.215,@b=0.17,@c=500
insert into p_parameter (total_times,qz_change,qz_total)
  values(@c,@a,@b)
select * from p_parameter
查询结果为(500,3.000,.000)
在企业管理器里面查看结果为一条(500,3,0)的记录
我希望的的结果是(500,3.215,0.170)

请教大家,这是怎么回事??是不是数据库设置的问题??


------解决方案--------------------
declare @a decimal(18,3),@b decimal(18,3),@c int 

------解决方案--------------------
declare @a decimal,@b decimal,@c int 
你在定义时用了不正确的类型或参数设置,
而在赋值时,
即 select @c=0.170,@b=0.124
隐式转换, 高精度转低精度,造成了数据损失.