一个简单的问题,讨论一下StrToFloat函数(50分)

  • 主题发起人 主题发起人 yimingquan
  • 开始时间 开始时间
Y

yimingquan

Unregistered / Unconfirmed
GUEST, unregistred user!
EDIT1.TEXT='12.3'
为什么StrToFloat(edit1.text)<>12.3
 
function ValidData(const accid:string ;const num:double;const iCallType:Integer;const isNum:Integer=0;const GunName:string='';const OilId:string=''):boolean;
begin
if not NeedCheckData then
begin
Result:=true;
exit;
end;
frmCheckData:=TfrmCheckData.Create(nil);
try
with frmCheckData do
begin
case iCallType of
1,2:iType:=1;
3,4:iType:=2;
5,6:iType:=3;
end;
if isNum=1 then
begin
Label4.Caption:='金额';
Label2.Caption:='元';
end;
case iCallType of
2,3,6: //出机
begin
ReadGunInfo;
end;
5:
begin
edtOilid.Enabled:=false;
SpeedButton2.Enabled:=false;
ComboBox1.Visible:=false;
end;
end;
if ShowModal=mrok then //点确定按钮
begin
case iCallType of
1: // 代存销售
begin
if (edtAccid.Text<>accid) or (StrToFloat(edtNum.Text)<>num) or (sOilId<>OilId) then ///这儿出问题
Result:=False
else
Result:=true;
end;
2://代存出机器
begin
if (edtAccid.Text<>accid) or (StrToFloat(edtNum.Text)<>num) or (ComboBox1.Text<>GunName) then ///这儿出问题

Result:=False
else
Result:=true;
end;
3://定期结算出机
begin
if (edtAccid.Text<>accid) or (StrToFloat(edtNum.Text)<>num) or (ComboBox1.Text<>GunName) then ///这儿出问题

Result:=False
else
Result:=true;
end;
4://定期结算
begin
if (edtAccid.Text<>accid) or (StrToFloat(edtNum.Text)<>num) or (sOilId<>OilId) then ///这儿出问题

Result:=False
else
Result:=true;
end;
5://预交款
begin
if (edtAccid.Text<>accid) or (StrToFloat(edtNum.Text)<>num) then ///这儿出问题

Result:=False
else
Result:=true;
end;
6://预交款出机
begin
if (edtAccid.Text<>accid) or (StrToFloat(edtNum.Text)<>num) or (ComboBox1.Text<>GunName) then ///这儿出问题

Result:=False
else
Result:=true;
end;
end;
end
else //点放弃按钮
Result:=False;
end;
finally
frmCheckData.Free;
end;
end;
 
const num:double 好象是这儿出问题!

StrToFloat函数是没有问题的,看下面,edit2.Text是等于edit1.Text的.
procedure TForm1.Button1Click(Sender: TObject);
begin
edit2.Text:=floattostr(strtofloat(edit1.Text))
end;
 
后退
顶部