关于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]]