• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

百分比累计不是100%的问题.

CACACACACA 2008-03-11 11:53:42
select mz as 民族, count(*) as 人数, (count(*)*100.0)/(select count(*) from #tmp) as 百分比
from #tmp


民族 人数 百分比
--------------------------------
无法统计 97 2.040000000000
土家族 15 .320000000000
羌族 2 .040000000000
回族 134 2.820000000000
彝族 1 .020000000000
维吾尔族 20 .420000000000
壮族 4 .080000000000
汉族 4407 92.800000000000
蒙古族 11 .230000000000
苗族 2 .040000000000
朝鲜族 25 .530000000000
黎族 1 .020000000000
满族 30 .630000000000


一共有4749条记录. 百分比的合计为99.99
怎么解决一下?




...全文
251 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
CACACACACA 2008-03-11
有时候也会出现100.01%
回复
CoffeeShop 2008-03-11
是有这个问题。
回复
dawugui 2008-03-11
进位造成的.
回复
w2jc 2008-03-11
四舍五入?
这种属于实数计算本身导致的误差...
回复
pt1314917 2008-03-11

select mz as 民族, count(*) as 人数,
百分比=ltrim(cast((count(*)*100.0)/(select count(*) from #tmp) as numeric(5,2))+'%'
from #tmp
回复
懒得去死 2008-03-11
这个不同的操作系统会产生不同的值
回复
-狙击手- 2008-03-11
ROUND
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-11 11:53
社区公告
暂无公告