难道是SQL SERVER7.0有BUG?

lotus2k 2000-06-13 10:26:00
我最近使用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.
...全文
195 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lotus2k 2000-06-16
  • 打赏
  • 举报
回复
对于bpc所说的,我并没有使用该函数,完全是用控件完成(dbgrid,dbedit等),最后
由table post一下,所以不存在数据类型兼容问题。
对于zhouzq的问题,实际是设置问题,将windows中控制面板的区域选项中的货币设置
改动一下就可以了。
zhouzq 2000-06-15
  • 打赏
  • 举报
回复
请问如何控制DELPHI中的CURRENCY在小数点的四位?
bpc 2000-06-15
  • 打赏
  • 举报
回复
2 你用TABLE部件添加时,肯定是用了
一个函数STRTOFLOAT();该函数把
字符转换成FLOAT型。为了保持兼容。
请将MONEY型改成FLOAT型》
lotus2k 2000-06-15
  • 打赏
  • 举报
回复
第二个问题我用TQUERY控件写sql语句来完成对数据的增加,修改,操作就可以实现
保留完整的4位小数,但是,如果用table控件+dbgrid或者dbedit等,则保留不了完整的
4位小数,如我输入2.3456,存入数据库后却变成了2.3500。是不是上述控件与SQL server的接口有问题?
bpc 2000-06-15
  • 打赏
  • 举报
回复
1.这种情况我遇到过,后来改成FLOAT型就可以了。。。。。。。
2.你说的不太清楚。我不明白你的意思。。。。。。。
lyxinfo 2000-06-14
  • 打赏
  • 举报
回复
1.

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧