码迷,mamicode.com
首页 > 其他好文 > 详细

float 的不确定性

时间:2017-07-24 13:03:56      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:sum   into   简单   开始   无法   select   sel   val   values   

很多时候,大家都知道,浮点型这个东西,本身存储就是一个不确定的数值,你永远无法知道,它是 0 = 0.00000000000000123 还是 0 = 0.00000000000999这样的东西。也许一开始使用的时候没有问题,但是有时候做统计的时候,就会看出端倪

简单的举个例子,就知道统计的时候,有可能出现意外的效果,导致可能需要存储过程或者接收程序的代码左额外的取舍数位的处理,所以在此其实我是推荐使用Numeric来替代float进行一个替代使用,避免一个sum ,然后明明明细看每一条数据都是正常的2,3位小数,一汇总就变成了8,9位的样子

CREATE TABLE #T (ID INT IDENTITY,Va FLOAT)
CREATE TABLE #T1 (ID INT IDENTITY,Va NUMERIC(15,9))

--分开执行-------------------------------------------------
INSERT INTO #T
        ( Va )
VALUES  ( 0.60000000)
INSERT INTO #T1
        ( Va )
VALUES  ( 0.60000000)
GO 100



SELECT SUM(Va) FROM #T
SELECT SUM(Va) FROM #T1



----------------------
60.0000000000001

(1 行受影响)


---------------------------------------
60.000000000

(1 行受影响)

 

float 的不确定性

标签:sum   into   简单   开始   无法   select   sel   val   values   

原文地址:http://www.cnblogs.com/Gin-23333/p/7227988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!