G
gzxhj
Unregistered / Unconfirmed
GUEST, unregistred user!
我学delphi不久,最近我试着用delphi4编写一个数据库管理程序发现以下几个问题,不知如何处理,请各位帮帮忙。
1. 我用database desktop建了一个Pardox数据库,里面有几个字段:x1,x2,x3,x4分别是数字型,其中计算公式为x4=x1+x2-x3,但在程序中我用如下语句计算时却发现一条记录有错误。
table1.fieldbyname('x4').asfloat:=table1.fieldbyname('x1').asfloat+table1.fieldbyname('x2').asfloat-table1.fieldbyname('x3').asfloat;
比如:
x1=33631.48
x2为空
x3=33631
那么根据公式x4=x1-x2+x3=33631.48+0-33631=0.48
结果却是:0.479999999563
然而我用database desktop另建一个Dbase数据库,计算结果却是0.48,但在database desktop下看pardox数据库时,结果却是0.48。另外我改变x3的值为33600时,结果同样有精确小数位,这是为什么?
2. delphi介绍中讲到,经过delphi编译后的程序可以脱离delphi环境下运行,为什么我编译后的程序却不能运行,就连放到其它目录下都不行,总是认源程序所在的目录,难到还有什么地方设置不对?
3. 我的源程序加起来才30K,为什么编译后的运行文件能有960K之多,有什么方法能让它变瘦些吗?
1. 我用database desktop建了一个Pardox数据库,里面有几个字段:x1,x2,x3,x4分别是数字型,其中计算公式为x4=x1+x2-x3,但在程序中我用如下语句计算时却发现一条记录有错误。
table1.fieldbyname('x4').asfloat:=table1.fieldbyname('x1').asfloat+table1.fieldbyname('x2').asfloat-table1.fieldbyname('x3').asfloat;
比如:
x1=33631.48
x2为空
x3=33631
那么根据公式x4=x1-x2+x3=33631.48+0-33631=0.48
结果却是:0.479999999563
然而我用database desktop另建一个Dbase数据库,计算结果却是0.48,但在database desktop下看pardox数据库时,结果却是0.48。另外我改变x3的值为33600时,结果同样有精确小数位,这是为什么?
2. delphi介绍中讲到,经过delphi编译后的程序可以脱离delphi环境下运行,为什么我编译后的程序却不能运行,就连放到其它目录下都不行,总是认源程序所在的目录,难到还有什么地方设置不对?
3. 我的源程序加起来才30K,为什么编译后的运行文件能有960K之多,有什么方法能让它变瘦些吗?