var
i:Extended;
j:real;
begin i:=dtpEndTime.DateTime-dtpBeginTime.DateTime;
j:=i*24;
lbTongjiTime.caption:= FloatToStr(j)+'小时';
end;想计算两个datetimepicker控件之间的时间长度,转换成小数输出。
初始:dtpBeginTime 8:00 dtpEndTime 8:00 调整dtpEndTime到 8:30 计算结果为0.5000000000001小时。如果改变:dtpBeginTime 9:00 dtpEndTime 9:30 计算结果却没错误,为0.5小时。
为什么是这个结果?
i:Extended;
j:real;
begin i:=dtpEndTime.DateTime-dtpBeginTime.DateTime;
j:=i*24;
lbTongjiTime.caption:= FloatToStr(j)+'小时';
end;想计算两个datetimepicker控件之间的时间长度,转换成小数输出。
初始:dtpBeginTime 8:00 dtpEndTime 8:00 调整dtpEndTime到 8:30 计算结果为0.5000000000001小时。如果改变:dtpBeginTime 9:00 dtpEndTime 9:30 计算结果却没错误,为0.5小时。
为什么是这个结果?
解决方案 »
- 100分求助------ClientDataSet提交数据失败
- 控制台程序使用TThread
- DELPHI如何连接SQL数据库
- 调用dll的问题????????
- delphi6升级到delphi7应该怎么做?要注意些什么?
- >>>>> 如何保存并恢复 ListView 拖动后的各列的相对位置--------似易实难 <<<<<
- 请问怎样做一个关机的程序?
- 请问在SQL语句中怎样用DELPHY的变量?
- 将dbgrid1中的数据转换为abc.db?
- 抢分问题:怎样才能查询出表中某字段的最大值,并把它加1 后 赋给edit.text?
- 有关delphi中数组做函数参数的问题
- 【高分】 基础没打好,问个记录排序的问题
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TTimeRange = packed record
FTimeBegin, FTimeEnd: TDateTime;
end; TForm1 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
uses
DateUtils;{$R *.dfm}procedure TForm1.btn1Click(Sender: TObject);
var
tr: TTimeRange;
ret: Double;
begin
tr.FTimeBegin := StrToDateTime('08:00:00');
tr.FTimeEnd := StrToDateTime('08:30:00');
ret := Hoursbetween(tr.FTimeBegin, tr.FTimeEnd) + MinutesBetween(tr.FTimeBegin, tr.FTimeEnd) / 60;
ShowMessage(FloatToStr(ret));
end;end.
//要不这样写吧?浮点数本来就不准确。