Sql server sql查询返回值问题
我正在对查询中的值进行多重运算Sql server sql查询返回值问题,sql-server,Sql Server,我正在对查询中的值进行多重运算 DECLARE @Rate DECLARE @numeric DECLARE @Result decimal SET @Rate= .01 SET @Result=34750*@Rate print @Result 但它始终将值显示为0 根据我的逻辑,结果应该是347.5 在得到结果347.5之后,我需要将值拆分并插入到2个变量中 像 我在这里做什么请告诉我,任何帮助都会很好 谢谢 Prince您需要定义数字和十进制数据类型的比例和精度 您可以通过强制转换
DECLARE @Rate
DECLARE @numeric
DECLARE @Result decimal
SET @Rate= .01
SET @Result=34750*@Rate
print @Result
但它始终将值显示为0
根据我的逻辑,结果应该是347.5
在得到结果347.5之后,我需要将值拆分并插入到2个变量中
像
我在这里做什么请告诉我,任何帮助都会很好
谢谢
Prince您需要定义数字和十进制数据类型的比例和精度 您可以通过强制转换为整数来获得整个零件(但是,我不确定您是否需要INT或FLOOR舍入)。我假设你只需要分数中最重要的一位数字
DECLARE @Rate NUMERIC(18,4)
DECLARE @Result DECIMAL(10,1)
SET @Rate= .01
SET @Result=34750*@Rate
PRINT @Result
DECLARE @IntPart INT
DECLARE @FracPart INT
SET @IntPart = CAST(@Result AS INT)
PRINT @IntPart
SET @FracPart = (@Result - @IntPart) * 10
PRINT @FracPart
您需要定义数字和十进制数据类型的比例和精度 您可以通过强制转换为整数来获得整个零件(但是,我不确定您是否需要INT或FLOOR舍入)。我假设你只需要分数中最重要的一位数字
DECLARE @Rate NUMERIC(18,4)
DECLARE @Result DECIMAL(10,1)
SET @Rate= .01
SET @Result=34750*@Rate
PRINT @Result
DECLARE @IntPart INT
DECLARE @FracPart INT
SET @IntPart = CAST(@Result AS INT)
PRINT @IntPart
SET @FracPart = (@Result - @IntPart) * 10
PRINT @FracPart
试试看
试试看
您将数字和十进制定义为非浮点数 你需要这些类型
decimal(x,y)
numeric(x,y)
其中y-是逗号后的数字量,x-数字中的总数字量您将数字和十进制定义为非浮点数 你需要这些类型
decimal(x,y)
numeric(x,y)
其中y-是逗号后的位数,x-数字中的总位数
DECLARE @Rate decimal(18,4)
DECLARE @numeric decimal
DECLARE @Result decimal(18, 4)
DECLARE @Var1 int, @Var2 decimal(18, 4)
SET @Rate= .01
SET @Result=34750*@Rate
SET @Var1 = @Result
SET @Var2 = @Result - @Var1
print @Result
print @Var1
print @Var2
输出
347.5000
347
0.5000
试试这个
DECLARE @Rate decimal(18,4)
DECLARE @numeric decimal
DECLARE @Result decimal(18, 4)
DECLARE @Var1 int, @Var2 decimal(18, 4)
SET @Rate= .01
SET @Result=34750*@Rate
SET @Var1 = @Result
SET @Var2 = @Result - @Var1
print @Result
print @Var1
print @Var2
输出
347.5000
347
0.5000