Delphi 分形函数精度损失

Delphi 分形函数精度损失,delphi,delphi-7,precision,floating-accuracy,tdatetime,Delphi,Delphi 7,Precision,Floating Accuracy,Tdatetime,我有一个TDateTime变量,它在运行时被赋值为40510.416667。当我使用Frac函数提取TTime类型变量的时间时,它将其设置为0.41666。为什么更改了该值的精度?是否存在保留原始值精度的解决方案,即将其设置为0.416667。TDateTime是一个浮点数。有些数字不能精确地表示为浮点数。0.416667/0.41666似乎是另一个 您可以四舍五入到5或6位数进行显示。这将使精度提高到1秒左右。TDateTime是一个浮点数。有些数字不能精确地表示为浮点数。0.416667/0

我有一个TDateTime变量,它在运行时被赋值为40510.416667。当我使用Frac函数提取TTime类型变量的时间时,它将其设置为0.41666。为什么更改了该值的精度?是否存在保留原始值精度的解决方案,即将其设置为0.416667。

TDateTime是一个浮点数。有些数字不能精确地表示为浮点数。0.416667/0.41666似乎是另一个


您可以四舍五入到5或6位数进行显示。这将使精度提高到1秒左右。

TDateTime是一个浮点数。有些数字不能精确地表示为浮点数。0.416667/0.41666似乎是另一个


您可以四舍五入到5或6位数进行显示。这将使你的准确度提高到1秒左右。

应该会有帮助,就像应该如此-这将为你提供一些与杰夫的答案相符的详细信息。

应该会有帮助,就像应该如此-这将为你提供一些与杰夫的答案相符的详细信息。

造成准确度下降的原因之一是TDateTime是一个双倍,Frac的参数和返回值为扩展类型

将浮点从一种类型转换为另一种类型时,可能会丢失某些精度。(对它们进行算术运算时也是如此)


要正确比较浮点值,应使用“单位数学”中的CompareValue函数。

精度损失的原因之一是TDateTime是双精度的,Frac的参数和返回值的类型为Extended

将浮点从一种类型转换为另一种类型时,可能会丢失某些精度。(对它们进行算术运算时也是如此)


要正确比较浮点值,您应该使用unit Math中的CompareValue函数。

感谢您在这方面的帮助,非常感谢。为了解决由于精度变化而产生的问题,我使用了CompareTime函数而不是>=或,非常感谢您在这方面的帮助,非常感谢。为了解决由于精度变化而产生的问题,我使用了CompareTime函数,而不是>=或