我偶尔会使用 Delphi 5 来完成编程工作,包括为我的电子业务提供的一个不错的商业应用程序。多年来,我已经用它完成了一些图形、数据库和其他一般工作。
今天,我正在做一个模拟,我想根据一些物理原理移动像素,细节在应用程序上并不重要,但我整个上午和昨天的一些时间都在寻找如何使用 Square Root 和 Square 函数没有得到奇怪的答案。通过检查分配给扩展变量类型“vector_length”的简单计算,我在计算时得到类似的结果(数字是固定的,但与表示这些数字的任何浮点类型的结果相同):
vector_length := Sqrt(Sqr(3.4) + Sqr(3))
从理论上讲,这给了我大约 4.53。使用计算器足够合理。
Delphi 的调试器向我展示了这样的内容:
2.9134839203548e-322
这显然是一个没有意义的浮点表示。
代码不像预期的那样工作,所以我只能认为数学是错误的,或者我做错了什么,期望函数给我一些符合合理结果的东西?
感谢您的任何意见。