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;
uj5u.com熱心網友回復:
通過正則取吧uj5u.com熱心網友回復:
TryStrToFloat(const S: string; out Value: Extended): Boolean;uj5u.com熱心網友回復:
tryedit28.Text:=floattostr(strtofloat(leftstr(rightstr(trim(edit27.Text),8),5)));
except
edit28.Text:='';
end;
或者直接將重量用show出來
edit28.Text:= leftstr(rightstr(trim(edit27.Text),8),5);
uj5u.com熱心網友回復:
strtofloatdefuj5u.com熱心網友回復:
有用
uj5u.com熱心網友回復:
vari: 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;
這樣為啥不行?
uj5u.com熱心網友回復:
引數型別不匹配吧仔細看看 TryStrToInt 和 TryStrToFloat 函式說明
uj5u.com熱心網友回復:
這樣可以的,要Use StrUtils
uj5u.com熱心網友回復:
kt 12.12kg 你的思路稍有一點問題,如果資料都是 12.12這種5位,你的結果應該是正確的,但變為120.12就會出問題。所以你完全可以換個思路,kt一定是在前面,且確定2位,kg一定在后面,且確定2位。這樣得到中間資料部分,你肯定會寫吧
最后用這個strtofloatdef('',0),以防萬一。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/134434.html
標籤:語言基礎/算法/系統設計
