SQL SERVER7.0中有bug?(200分)

  • 主题发起人 主题发起人 lotusXS
  • 开始时间 开始时间
L

lotusXS

Unregistered / Unconfirmed
GUEST, unregistred user!
我最近使用delphi5.0+sql server7.0(NT4.0)+win98开发一个财务系统,碰到两个棘手的问题:
1.decimal数据类型,当指定decimal数据类型为(12,6)时,在数据库中有时
会出现奇怪的现象:当存入浮点数时,经常数值不精确,如:1.23变成了
1.229999,结果造成报表数据很难看,
2.money数据类型,sql server 中money数据类型可以精确到四位小数,但在
前端(win98)上用DELPHI开发的界面上,虽然可以通过设置win98中区域的货
币属性看到4位小数,但是却不能输入4位小数,如输入1.2356,结果保存后变
为1.2400,后两位被四舍五入掉了。但是,如果前端是win2000,或者数据库系
统用parodox则不会有这种情况。
请问,这是不是SQL server的bug,还是其他原因,有没有好的解决办法?
thanks.
 
Q1: 将decimal改为Numeric
Q2: 将money改为Numeric(n,4)
 
这不是bug
 
are you sure it works?
 
哦,为什么不是bug?老乔
 
是转换精度问题,用精度高的变量类型就行了。
 
这根本就不是bug,
//但是却不能输入4位小数,
你用什么控件?自编的吗?试试BDE中的Configuration->system->Formats->Number
中的小数位设置。
再说一遍,SQL没错。
 
的确不是bug,我用delphi建立foxpro数据库时也遇到这种问题。
 
BDE中设置 Enable BCD=True ... 唉!

写这几个字都写累了,我要建议大富翁设一个常见问题及解答(FAQ),
不然实在太多人提出重复问题了。

 
bcd 以十进制方式存储,计算速度慢,但精度高
 
我在SQL6。5中没有遇到这种问题,不过SMALLMONEY会只保留两位的,7。0我想也
应该没有这种问题了,你的BDE中设置 Enable BCD=True了吗?如果实在不行就就定义numberic
类型吧!
 
多人接受答案了。
 
后退
顶部