木子屋 Dnawo's BLOG

sql两个int相除结果为整数解决方法

👤 dnawo 📅 2012-09-19 👁 6797 👍 0 💬 0 🔄 本站原创
今天在测试时发现有个money字段值总为0,在对存储过程调试后发现了问题,问题重现:

declare @a int, @b int
set @a = 2
set @b = 10
print @a/@b --输出0

我们想得到的是0.2,结果被取整了,又做了几个测试:

declare @a int, @b int
set @a = 2
set @b = 10
print cast(@a/@b as money) --输出0.00

declare @a money, @b money
set @a = 2
set @b = 10
print @a/@b --输出0.20

综合上边测试结果,在不改变sql中@a和@b类型的前提下,sql脚本修改为:

declare @a int, @b int
set @a = 2
set @b = 10
print @a/cast(@b as money) --输出0.20

多个int相除时注意转换顺序:

print 2/10/cast(1 as money) --输出0.00
print 2/cast(1 as money)/10 --输出0.20
print cast(1 as money)*2/10 --输出0.20

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 Excel2007宏添加数字签名示例 下一篇 → MongoDB开启安全模式启用身份验证