旧代码中存在十次幂的编译错误

问题描述 投票:0回答:1

大家早上好。

我遇到了一个旧的delphi程序的问题(我可以读到评论说“最后编辑21/09/1992”)

当我使用最新的 Embarcadero 11 加载项目时,出现编译错误:

value := 5.E-3

E2003 Error: Identifier undeclared 'E' line xxx

我相信这意味着 5 * 10^-3 ,即 0.005。 为了使这一行编译,我删除了点,我知道有

value := 5E-3

不幸的是,使用这一行的测试无法正确执行,因为这是我所做的唯一修改,并且代码没有注释(除了上世纪的一些日期)我想知道我通过删除点进行的修复是否正确。

记录的语言是否有语法修改? (德尔福 7 到德尔福 11?) 我有数百个这样的“5.E-3”,我想确定我的更正是否正确。

谢谢您的建议,

雅尼克

delphi delphi-7
1个回答
0
投票

根据您的代码的年龄,它很可能源自 Turbo Pascal。

Turbo Pascal 不像现代 Delphi 那样支持浮点数,所以我猜测你的

value
变量的类型是
Real
。但这与 System.Real 不同。

相反,在 Turbo Pascal

real
类型中具有不同的数据结构,您可以在 Turbo Pascal Real 中阅读。

这意味着,即使您设法在代码中进行适当的更改,以便所有这些数字都用正确的科学记数法表示,Delphi 接受数字的实际值可能与 Turbo Pascal 中的值不同,因为Turbo Pascal 和现代 Delphi 版本如何处理

Real
类型。

© www.soinside.com 2019 - 2024. All rights reserved.