edit28.Text:=floattostr(strtofloat(leftstr(rightstr(trim(edit27.Text),8),5)));电子秤传来的数据为  kt 12.12kg  这样截取的数据正常有时数据为  ?  或者其他非正常字符串就会提示'' is not a valid float point value或者
'?' is not a valid float point value如何判断leftstr(rightstr(trim(edit27.Text),8),5))获得的不是数字时exit;if ------ then exit;

解决方案 »

  1.   

    TryStrToFloat(const S: string; out Value: Extended): Boolean;
      

  2.   

    try
      edit28.Text:=floattostr(strtofloat(leftstr(rightstr(trim(edit27.Text),8),5)));
    except
      edit28.Text:='';
    end;或者直接将重量用show出来edit28.Text:= leftstr(rightstr(trim(edit27.Text),8),5);
      

  3.   

    strtofloatdef
      

  4.   

     var
      i: LongInt;
      f: Double;
      Str: string;begin
     if not TryStrToInt(leftstr(rightstr(trim(Str),8),5),i) or not TryStrToFloat(leftstr(rightstr(trim(Str),8),5), f) then  exit;这样为啥不行?
      

  5.   

    参数类型不匹配吧仔细看看 TryStrToInt 和  TryStrToFloat 函数说明
      

  6.   


    这样可以的,要Use StrUtils
      

  7.   

     kt 12.12kg  你的思路稍有一点问题,如果数据都是 12.12这种5位,你的结果应该是正确的,但变为120.12就会出问题。
    所以你完全可以换个思路,kt一定是在前面,且确定2位,kg一定在后面,且确定2位。这样得到中间数据部分,你肯定会写吧
    最后用这个strtofloatdef('',0),以防万一。