我跟随了Delphi Basic的一个例子。我复制了它并且能够在我的Delphi 2007中运行它。
所以我构建了自己的程序并使用了上面提到的这种方法,但是遇到了错误。错误陈述" ...引发异常类EConvertError,消息" 9.702827253E + 003'不是有效的浮点值"。
抓我的头......
var
readResult2:WideString;
strSN:String;
strSN2:String;
floatSN:Extended;
当readResult2
被视为' + 9.702827253E + 003'#$ A,如手表所示,
strSN := readResult2;
Delete(strSN,1,1);
floatSN := StrToFloat(strSN); //This line created an error
freqSformat.Text := FloatToStr(floatSN);
知道为什么会这样吗?我还是难过......
答案 0 :(得分:5)
问题是尾随#$A
字符。我无法看到你的文字来自哪里,但你需要删除那个流浪角色。
StrToFloat('+9.702827253E+003'); // succeeds
StrToFloat('+9.702827253E+003'#$A); // raise EConvertError
拨打Trim
会将其删除。
StrToFloat(Trim('+9.702827253E+003'#$A)); // succeeds
但是你最好还是正确地删除它。为了知道如何做到这一点,你首先需要知道它的来源。我们不知道。你这样做。