关于Delphi中的''is not valid floating point value

beginMysqlADOQS('crash');b[1]:=DataModule13.ADOQS.Fields[0].AsString;MysqlADOQB('sum'... begin
MysqlADOQS('crash');
b[1] := DataModule13.ADOQS.Fields[0].AsString;
MysqlADOQB('sum','现金');
if DataModule13.ADOQB.RecordCount=0 then
begin
c[1] := DataModule13.ADOQB.Fields[0].AsString;
eCash1.Caption := FloatToStr((StrToFloat(b[1])-StrToFloat(c[1]))/100);
end
else
eCash1.Caption := FloatToStr(StrToFloat(b[1])/100);

MysqlADOQS('credit');
b[2] := DataModule13.ADOQS.Fields[0].AsString;
MysqlADOQB('sum','银行');
if DataModule13.ADOQB.RecordCount<>0 then
begin
c[2] := DataModule13.ADOQB.Fields[0].AsString;
eCash2.Caption := FloatToStr((StrToFloat(b[2])-StrToFloat(c[2]))/100);
end
else
eCash2.Caption := FloatToStr(StrToFloat(b[2])/100);

MysqlADOQS('mealcard');
b[3] := DataModule13.ADOQS.Fields[0].AsString;
MysqlADOQB('sum','饭卡');
if DataModule13.ADOQB.RecordCount=0 then
begin
c[3] := DataModule13.ADOQB.Fields[0].AsString;
eCash3.Caption := FloatToStr((StrToFloat(b[3])-StrToFloat(c[3]))/100);
end
else
eCash3.Caption := FloatToStr(StrToFloat(b[3])/100);
用到了procedure MysqlADOQS(S: string);
begin
DataModule13.ADOQS.Active:=true;
DataModule13.ADOQS.Edit;
DataModule13.ADOQS.SQL.Clear;
DataModule13.ADOQS.SQL.Text := 'select '+S+' from startmoney where u_name='''+a+'''';
DataModule13.ADOQS.ExecSQL;
DataModule13.ADOQS.open;
end;

procedure MysqlADOQB(B,C: string);
begin
DataModule13.ADOQB.Active:=true;
DataModule13.ADOQB.Edit;
DataModule13.ADOQB.SQL.Clear;
DataModule13.ADOQB.SQL.Text := 'select sum('+B+') from typein where account='''+C+'''';
//DataModule13.ADOQB.ExecSQL;
DataModule13.ADOQB.open;
end;
我想把 DataModule13.ADOQB.RecordCount=0 改成不等于,可是第一个改没问题,将后面几个改掉就是''is not valid floating point value,这个错误,求高手指点
展开
 我来答
思思d84
2012-06-03 · 超过17用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:51.4万
展开全部
你后几个查询的结果中要转换为float的字段值是空的结果 即 字符串 ''
你把字符串 '' 转为 float 它当然报错了
你用 StrToFloatDef 代替 StrToFloat应该就不会报这个错了
追问
我用StrToFloatDef时,显示There is no overloaded version of 'StrToFloatDef' that can be called with these arguments是怎么回事?
追答
strtofloatdef 是两个参数 StrToFloatDef(b[2],0)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式