我遵循了 Delphi Basic 中的一个示例.我复制了它并能够在我的 Delphi 2007 中很好地运行它。
所以我构建了自己的程序并使用了上面提到的这种方法,但遇到了错误。错误说明“...引发异常类 EConvertError 并带有消息“9.702827253E+003'不是有效的浮点值”。
挠了挠头……
var
readResult2:WideString;
strSN:String;
strSN2:String;
floatSN:Extended;
当
readResult2
如 watch 所示,读作'+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
但你肯定会更好地正确删除它。为了知道如何做到这一点,您首先需要知道它来自哪里。我们不知道。你做。
关于delphi - 无法将科学计数值转换为十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31849973/