标题:关于float数据类型存储数据
只看楼主
thjanxd
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-4-25
 问题点数:0 回复次数:4 
关于float数据类型存储数据
各位高手:
小弟有这样一个问题:
企业管理器中,创建表abcc
这样的结构           列:      a float(8)
                               b float(8)
                               c float(8)
存储过程中创建
creat procedure dbo.bbb @a float(8)
insert into abcc (a,b,c) values (@a,@a*.2,@a*.08)
go
查询分析器中运行该存储过程(在对象浏览器中,右键打开存储过程运行)参数@a =12345678.1234
得到结果
                  a                b                c
                12345678          2469135.75        987654.1875
如果在查询分析器中直接写语句
insert into abcc (a,b,c) values (12345678.1234,12345678.1234*.2,12345678.1234*.08)
得到结果
                    a                   b                c
                12345678.1234       249135.62468       987654.249872
我想问一下,为什么执行的同一个语句,存储过程运行的结果会有这么大的误差,怎么避免?如何设置下存储过程?
因为这些数字都是钱数、金额,最大误差也得在小数点后2位,也就是到分,现在的误差太大了
请高手指教。


另外,那位大侠有关于float 数据类型的详细介绍,给提供一下,我搜不到,联机帮助介绍的也少。

[[it] 本帖最后由 thjanxd 于 2008-4-25 14:56 编辑 [/it]]
搜索更多相关主题的帖子: float 数据 类型 
2008-04-25 14:54
lff642
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-11-28
得分:0 
没理由啊.我想跟你电脑的精度有关吧.
我这里的数据是:
12345678.123400001    2469135.6246800004    987654.24987200007
12345678.123400001    2469135.6246799999    987654.24987199996
2008-04-25 15:17
thjanxd
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-4-25
得分:0 
你的电脑按照我的操作方法两次得到同样结果么?
电脑精度该在哪里调啊?不懂啊
2008-04-25 15:56
thjanxd
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-4-25
得分:0 
你运行那个存储过程是怎么运行的?
是在查询分析器中写语句,还是用鼠标操作的?
2008-04-25 15:57
thjaxd
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-5-16
得分:0 
晕,还没弄明白呢,怎么就要沉了啊,发问的不少啊

强中手中自还有强中手,向强中手学习,致敬!
2008-04-26 03:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-211035-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031092 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved