Tsql sql 2014存储十进制的问题

Tsql sql 2014存储十进制的问题,tsql,sql-server-2014,Tsql,Sql Server 2014,我有一个存储过程,最初创建一个临时表。我填充前3列,然后我想得到作业作废时的百分比。但我似乎不能得到一个好的价值。若Void=10,Total_Jobs=59,则10/59=0.16,但表中填充的是零。我做错了什么 Create table #tbl_WeeklyJobsRpt ( Region_Code varchar(25), Void int DEFAULT 0, Total_Jobs int DEFAULT 0, Void_Pctg decimal(10,2) DEFAULT 0 )

我有一个存储过程,最初创建一个临时表。我填充前3列,然后我想得到作业作废时的百分比。但我似乎不能得到一个好的价值。若Void=10,Total_Jobs=59,则10/59=0.16,但表中填充的是零。我做错了什么

Create table #tbl_WeeklyJobsRpt
(
Region_Code varchar(25),
Void int DEFAULT 0,
Total_Jobs int DEFAULT 0,
Void_Pctg decimal(10,2) DEFAULT 0
)

-- Void_Pctg
Update #tbl_WeeklyJobsRpt
  set Void_Pctg = ((Void)/Total_Jobs)
Where Void <> 0

两个值都是int,因此结果也是int,并且该值被向下舍入。
尝试1.0*Void/Total_Jobs-1.0会导致隐式强制转换

@Alex,这是正确的答案,谢谢你。 我必须将我的字段设置为float,然后当我稍后进行分割时,所有这些都起作用了。我以为我已经试过了,但很明显我错过了某个细节。

可能存在的副本