可能重复:
Truncate (not round) decimal places in SQL Server微软SQL四舍五入到整数,需要1位小数
想不通这一点。我需要返回1个小数位,同时SQL将四舍五入为整数。
我读到整数除以整数给SQL中的整数,但我需要一个截断的小数位在临时表中的输出值。
我不介意35.0回到35,但35.17应该回到35.1。对不起刚刚编辑。需要截断最后一个数字,而不是四舍五入。
create table #blah(output decimal(9,1))
DECLARE @a money
DECLARE @b money
DECLARE @intinterval decimal(9,1)
SET @a = 5
SET @b = 2
SET @intinterval = (@b/1000.0) * (86400.0/@a)
INSERT INTO #blah (output) VALUES (@intinterval)
SELECT * from #blah
drop table #blah
上述方程应得到(2-/1000)*(五分之八万六千四)=(0.002 * 17280)= 34.56
的34.56应截断至34.5
@intinterval变量的类型是什么?请修改您的帖子。谢谢 –
@intinterval的声明是什么?这可能是你的问题所在。如果我在'VALUES(@intinterval)'中用'(@b/1000.0)*(86400.0/@a)'代替@intinterval,我会在select语句结果中得到两位小数位数。 –
请参阅此[链接] [1]。你需要转换和使用功能全面 [1]:http://stackoverflow.com/questions/5167299/rounding-decimal-in-sql-server –