环境:sqlserver2000,delphi7
由于特殊要求,我的数据库中有关金额都要定精确到小数点后6位,所以在数据库中定义decimal(6),在数据库中填入数据1.123456,刷新显示没有问题;但是用ado在dbgrid中显示时,显示为1.1235,自动截取了;
如果数据类型采用float,用ado在dbgrid中显示是正确的1.123456;但float是不精确的;
问题:
1、有没有什么办法类型定义为decimal(6),用ADO在dbgrid中也能完全显示出小数后6位?
2、如果1不行,是不是小数点操过4位的都要定义成float类型,这样好像decimal类型干脆就限制到小数点4位,为什么在数据库里又可以超过4位呢请高手赐教!
解决方案 »
- 如何将memo空间中的规数据保存到本地数据库?
- 新手攒人气,散分
- 高分问局域网socket通信IP获取问题
- delhi 字符串变量
- 有关fastreport中的BeforePrint事件
- 哪位能看出如下模块中在子函数GetTmpVersionList中vXMLTmpVersionFile.Node.ChildNodes.FindNode为什么出错误?
- 易构管理信息平台试用学习版发布,散分啊!
- 用友问题
- 如何对TXT内的文字按汉语拼音排序??
- 今天狠了狠心买了一本<<Delphi 5开发人员指南>>,花了我十分之一的工资!心疼啊!散点分!
- 请教C/S和B/S的详细解释
- 95那个JR明天生日,我也放分-_-" (顺便再看看那....一群... J..R)
----------------------------------------------------------------------------------
好像不行,从数据库读出来decimal的时候,小数点后边就只保留4位。至于为什么数据库中可以,那时因为DELPHI和SQL SERVER不是同一个产品,他们由不同厂家提供不同的支持。
这样定义表示18位整数,6位小数,你的定义是错误的。
在delphi+sql2000的环境中:
要想小数位保留6,数据类型只能定义成float,那在运算过程中也就可能存在着误差了!