select F_Name,Sum(isnull(M.F_xj,0)-isnull(M.F_xj2,0)) as F_XXj from T_bookm
为什么上面这条语句相减后会出现很多小数点呢?如,49.999999999,可我数据里面没有这么多小数点
怎么把这些小数去掉,只保留两位小数?
为什么上面这条语句相减后会出现很多小数点呢?如,49.999999999,可我数据里面没有这么多小数点
怎么把这些小数去掉,只保留两位小数?
select F_Name,cast(ltrim(str(Sum(isnull(M.F_xj,0)-isnull(M.F_xj2,0)),15,2)) as numeric(12,2)) as F_XXj from T_bookm
我说下原因,呵呵:
------------------------------------------------
SUM函数以最精确的表达式数据类型返回所有表达式值的和。表达式结果 返回类型
整数分类 int
decimal分类 (p, s) decimal(38, s)
money 和 smallmoney 分类 money
float 和 real 分类 float
-------------------------------------------------
减号表达式返回优先级较高的参数的数据类型
------------------------------------------
上面二合一就出来那么多小数点