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

标签 delphi delphi-2007

我遵循了 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/

相关文章:

delphi - 将文件拖放到 Delphi 表单中不起作用

delphi - 如何同时安装 D2007 和 D2010?

delphi - PopupMenuItem Click和MouseOver之间的区别

winforms - 如何在 WinForms 应用程序中使用 Delphi (2007) 控件?

delphi - 无法加载 SSL 库

Delphi XE2 64 位字符串例程的运行时性能极慢

delphi - 为什么我的 {$IFDEF DEBUG} 条件在 Delphi 中不起作用?

delphi - XE6下如何正确对齐TASK_TRIGGER记录?

delphi - 如何使窗体或窗口控件 RecreateWnd 正确感知?

delphi - 如何使 Lazarus IDE 的外观和工作方式与 Delphi 2007 或更高版本类似?