declare @c numeric(10,2)
declare @qtyin int
declare @qtyout int
declare @TV numeric(10,2)set @qtyin = 2673
set @qtyout = 1373
set @TV = 11531.8select @c = (1373/2673) * @TV * 100print @c-----------------------
结果:0.00
declare @qtyin int
declare @qtyout int
declare @TV numeric(10,2)set @qtyin = 2673
set @qtyout = 1373
set @TV = 11531.8select @c = (1373/2673) * @TV * 100print @c-----------------------
结果:0.00
解决方案 »
- SQLSERVER2008安装出错--错误代码 0x84B10001
- 选择前10和后10的记录怎么写来着?感谢!
- 要實現動態的參數表,如何在SQL Server上建表啊?
- 一个急需要 解决的问题
- try catch transaction rollback
- 连接问题求助!connectionopen问题。
- 请教一个SQL语句
- 求“历史上的今天”数据库
- SQL SERVER 支持SELECT FROM ( SELECT FROM ) 这种写法吗?
- 简单问题帮忙啊,急!
- 如何在解除远程服务器上锁?
- SELECT CHARINDEX('|', {fn REPLACE('aa,bb,cc', ',', '|')}) 中 fn 的是什么意思?
declare @qtyin int
declare @qtyout int
declare @TV numeric(10,2)set @qtyin = 2673
set @qtyout = 1373
set @TV = 11531.8select @c = (1373/2673) * @TV * 100print @c
declare @qtyin int
declare @qtyout int
declare @TV numeric(10,2)set @qtyin = 2673
set @qtyout = 1373
set @TV = 11531.8select @c = (1373*1.0/2673) * @TV * 100print @c
最好1.0*a/b 來代替a/b
declare @qtyin int
declare @qtyout int
declare @TV numeric(10,2)set @qtyin = 2673
set @qtyout = 1373
set @TV = 11531.8select @c = (1373/2673) * @TV * 100print @c
或者
declare @c numeric(10,2)
declare @qtyin int
declare @qtyout int
declare @TV numeric(10,2)set @qtyin = 2673
set @qtyout = 1373
set @TV = 11531.8select @c = (cast (1373 as decimal)/2673) * @TV * 100print @c
declare @qtyin int
declare @qtyout int
declare @TV numeric(10,2)set @qtyin = 2673
set @qtyout = 1373
set @TV = 11531.8set @c =(convert(numeric(10,2), @qtyout)/@qtyin )* @TV * 100print @c或者
declare @c numeric(10,2)
declare @qtyin int
declare @qtyout int
declare @TV numeric(10,2)set @qtyin = 2673
set @qtyout = 1373
set @TV = 11531.8set @c =( @qtyout/(convert(numeric(10,2),@qtyin ))* @TV * 100print @c
或者declare @c numeric(10,2)
declare @qtyin numeric(10,2)
declare @qtyout int
declare @TV numeric(10,2)set @qtyin = 2673
set @qtyout = 1373
set @TV = 11531.8set @c =(convert(numeric(10,2), @qtyout)/@qtyin )* @TV * 100print @c结果为:
592336.75原因int类型与int类型计算,得到int类型,(1373/2673)得到小数为0.51...现于为整数类型,结果为0,要想得到小数,那只有将其一个整数类型转为numerice(10,2),SQL运算时将结果以numeric(10,2)保存