我在这里错过了什么?
select cast ( ( cast (100 * 39 as decimal ) / 41) as decimal(5,2))
Run Code Online (Sandbox Code Playgroud)
得到95.12的结果
但
declare @percent decimal
set @percent = cast ( ( cast (100 * 39 as decimal ) / 41) as decimal(5,2))
select @percent
Run Code Online (Sandbox Code Playgroud)
结果为95
两个2小数点发生了什么,如何让它们回到变量中?
DECIMAL它本身没有任何小数位(实际上是DECIMAL(18,0)).您需要指定精度和比例,例如
DECLARE @percent DECIMAL(5,2);
SET @percent = 1.0 * (100 * 39) / 41;
SELECT @percent;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1090 次 |
| 最近记录: |