所以我有两列TotalBoxes和BoxesTicked,我的总数是33,勾选的框数是2。
所以2/33给我.06(重复)
T-sql返回0。如何编写T-SQL仅返回.06。
DECLARE @TotalBoxes int
DECLARE @TotalTicked int
SET @TotalBoxes = 33
SET @TotalTicked = 2
PRINT @TotalTicked/@TotalBoxes
PRINT ROUND(@TotalTicked/@TotalBoxes, 4,2)
PRINT CAST(@TotalTicked/@TotalBoxes as DECIMAL(4,2))
TIA。
答案 0 :(得分:0)
您的两个变量均为INT
,SQL Server将其除法显示为INT
。如果您可以将它们中的任何一个转换为带小数的数据类型(例如DECIMAL
或NUMERIC
),则除法将具有小数。
将整数转换为小数的警告是乘以1.0
之类的小数(请注意小数点)。
DECLARE @TotalBoxes int
DECLARE @TotalTicked int
SET @TotalBoxes = 33
SET @TotalTicked = 2
PRINT @TotalTicked * 1.0 /@TotalBoxes
PRINT ROUND(@TotalTicked * 1.0/@TotalBoxes, 4,2)
PRINT CAST(@TotalTicked * 1.0/@TotalBoxes as DECIMAL(4,2))
结果:
0.060606060606
0.060600000000
0.06