如何实现不同类型字段的计算?(50分)

  • 主题发起人 主题发起人 路漫漫
  • 开始时间 开始时间

路漫漫

Unregistered / Unconfirmed
GUEST, unregistred user!
请问以下不同类型的字段应如何计算?
Table1Field2.asinteger:=Table1timeField3.asdatetime*Table1SmallintField
 
你把日期 * 整数 是什么意思, 要进行算术运算么都要转换成数字才行.
 
我的想法是求出一段时间乘以费率的数值,如何写?
 
你的Field3中已经是时间量了吗? (注意不是时刻量)


Table1field1.asinteger:=Table1Field3.asfloat* Table1Field3.assmallint
~~~~~~~ 不是asdatetime
Datetime类型是记录时刻的类型.
 
TDateTime是Double类型,整数部分表示从12/30/1899 12:00 am到现在的天数,
小数部分表示现在时间占一天时间的比例,所以如果要求时间量也很简单,直接减就行了。
 
不知怎的我按照以上方法写通不过编译,本人初学DELPHI很多地方还不是太懂,
能否写出详细的例子?
构思如下:
xxx.db表有以下字段:开始时间,结束时间,使用时间,费率,应计费用,
开始时间和结束时间由系统取得(已成功写出),并写入表中,现在想根据
开始和结束时间算出使用时间并写入表中,再根据使用时间*费率算出应计费用
并写入表中。
请各位专家多多帮助,谢谢!
 
加个Round()应该行的;浮点数不能直接付给整数的
 
Var tt : float ;

with Table1 do begin
edit ;
tt := FieldByname('结束时间').asdatetime
-FieldByname('开始时间').asdatetime;
fieldByname('使用时间').asfloat := tt; //(天数)
fieldbyname('应计费用').asfloat := tt * fieldbyname('费率').asfloat
post ;
end;
 
seasky:
var tt:float;
怎么无法定义?显示错误:undeclared identifier:'float'
why?
 
换成 tt:real;
 
with Table1 do
begin
edit ;
FieldByName('应计费用').AsString := format('%.4f',
[(FieldByName('结束时间').Value-FieldByName('开始时
间').Value)* fieldbyname('费率').AsFloat]);
post ;
end;
 
with Table1 do
begin
edit ;
FieldByName('应计费用').AsString := format('%.4f',
[(FieldByName('结束时间').Value-FieldByName('开始时
间').Value)* fieldbyname('费率').AsFloat]);
post ;
end;
 
对不起,这几天只顾抗议北约暴行,没上大富翁,耽误大家了,再次抱歉!
 
后退
顶部