sql 产生多位小数

来源:百度知道 编辑:UC知道 时间:2024/05/29 13:24:21
我用SELECT 姓名,sum(系数 * 课时 ) as 一周系数 from 课务 group by 姓名
命令产生的一周系数字段为什么有那么多的小小数位数,原数据中只有系数字段最多两位小数
9.25
11.550000190734863
7.25
11.550000190734863
9.8999996185302734
11.100000381469727
6.5999999046325684
9.8999996185302734
9.25
11.550000190734863
15.5
9.8999996185302734
13.199999809265137
6.5999999046325684
11.550000190734863
11.600000381469727
11.100000381469727
11.600000381469727
16.5
9.8999996185302734
11.100000381469727
9.8999996185302734
11.600000381469727
系数 数字 单精度型 小数位数 2
课时 数字 字节

用abill425的方法在access中行了,但在sql server2000中结果为
9.25
11.550000000000001
7.25
11.550000000000001

还有谁能为我解释一下为什么为这样

字段什么类型都不说

单精度类型精度不够高
涉及计算的用decimal类型

课时是字节型?binary? 用tinyint好了

用这个:

SELECT 姓名,round(sum(系数 * 课时 ),2) as 一周系数 from 课务 group by 姓名
-----------------------------------------------
sqlserver用这个:
SELECT 姓名,convert(decimal(18,2),sum(系数 * 课时 )) as 一周系数 from 课务 group by 姓名

类型问题
sql2000中
numeric(8,2)
2就是精度