REAL类型的显示问题?(10分)

  • 主题发起人 主题发起人 tt123tt
  • 开始时间 开始时间
T

tt123tt

Unregistered / Unconfirmed
GUEST, unregistred user!
var
sall:string;
temp:real;
begin
temp:=149*0.4 // =59.6
sall:=format('%8.2f',[temp]);
showmessage(sall);
sql:='insert into temp (sall) VALUES ('+sall+')';
//showmessage(sql);
DataModule2.ADOQuery3.SQL.Clear ;
DataModule2.ADOQuery3.SQL.Add(sql) ;
DataModule2.ADOQuery3.ExecSQL ;
sall可以正常写入ACCESS2000数据库里字段是单精度类型我存入的是59.6,但我在DBGrid里得到的是
59.600000000087889这样的数,我只要小数点后两位就可以了.这是为什么?,怎么改?会不会影响精度?
 
你再对 DBGrid 里的值进行一次 Format 不就可以了?
 
dbgrid 字段显示displayformat 0.00
 
可以处理tfield的ongettext事件
在里面用floattostr或floattostrf控制显示
 
Real 类型在Delphi 2 和 Delphi 3 中的定义与 16 位版本一样,都占 6 个字节。不过Borland公司一直不提倡使用这种类型,而建议用Single、 do
uble、 Extended 类型代替。这是由于 Real 这种 6 字节的旧格式既不受 Intel CPU 的支持,又没有列在官方的IEEE 实型中。为了完全解决这一问题,Delphi 4 不得不修改 Real 类型的定义,将其改成标准的 8 字节浮点型, 由此引起了兼容性问题.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
738
import
I
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部