浮点数据的显示!(300分)

  • 主题发起人 主题发起人 windpray
  • 开始时间 开始时间
W

windpray

Unregistered / Unconfirmed
GUEST, unregistred user!
有一access表,表中有一字段为数字性,两位小数位

在DELPHI中用ADO与此表相连,用stringgrid显示数据。在显示时该数字字段显示不正常。
如数据为1.20显示确为1.199999....该如何结决!!!
 
格式化一下
 
1.加Adotable单击右键中加入所有字段,再选中该字段,再按F11,在format属性
在Field的DisplayFormat 属性中定义:
如 #####.## 即定义显示为 后面显示两位小数

2.access的SQL支持FORMAT函数,

3.改为货币型字段试试
 
你试试着这样怎么样,
用函数 例如 label1.caption:=formatfloat('0.##',a);
a为你要输出的实数,一个#表示输出为保留一个小数,以此类推;
 
O有一个忘说了!
我用一个ADOEQURY和STRINGGRID来显示不同表的内容。所以不能对FIELDS进行格式化!
HTW的第二项我可以考虑,不过SELECT的通用性太差了!
还有其它的结决方法吗?
 
打错了个字是query不是equry,还有我用的就是货币性的字段!
 
>>我用一个ADOEQURY和STRINGGRID来显示不同表的内容。所以不能对FIELDS进行格式化!

不能对 Field 进行格式化?
不可能,我一直用 TStringGrid 来显示数据表内容,
似乎格式化是很成功的,不知道你是什么情况?
至于用 TQuery 还是 TTable 都无所谓。只要是
TDataSet/TBdeDataSet 的子类,处理都是一样的。

1)如果利用 TStringGrid 来显示数据,那就更方便了。
FormatFloat('0.00', table_field.AsFloat);

2)Access 的 Select 和 SQL-92 差别倒不是很大;
好象只有表处理功能很不好。CREATE TABLE LIKE ...
好象根本不支持!差劲!

3)从数据库中读取浮点数时,由于各种数据表的数据类型
与 WINDOWS 标准数据类型有出入,Delphi 在处理这些浮点
数时,一般都处理成 double/extended,所以即使在 ACCESS
中已经将数值格式化(定义),如货币型或指定小数,但
Delphi 读取时总是会转化成 double/extended,因此一般
情况下,必须对读取值进行格式化处理。至于怎么格式化,
楼上几位已经说得很清楚了。不重复。
 
FormatFloat('0.00', table_field.AsFloat)
 
OK了!
改成货币型的就行了!
TO DDV我的意思不是说不能对FIELDS进行格式货,只是表不同,数据字段的位置不同,格式
货起来太烦!呵呵

 
多人接受答案了。
 
后退
顶部