无法将科学计数值转换为十进制

Unable to convert scientific notation value to decmial

我遵循了 Delphi Basic 中的示例。我复制了它并能够在我的 Delphi 2007 中很好地 运行 它。

所以我构建了自己的程序并使用了上面提到的这种方法但是运行出错了。错误指出“...引发异常 class 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);

知道为什么会这样吗?我还是很困惑...

问题是结尾的 #$A 字符。我看不到你的文字来自哪里,但你需要删除那个杂散字符。

StrToFloat('+9.702827253E+003'); // succeeds
StrToFloat('+9.702827253E+003'#$A); // raise EConvertError

调用 Trim 将删除它。

StrToFloat(Trim('+9.702827253E+003'#$A)); // succeeds

但是你最好正确地删除它。为了知道如何做到这一点,您首先需要知道它来自哪里。我们不知道。你会的。