Math.Floor delphi 溢出 5

Math.Floor overflow in delphi 5

我正在开发一个旧学校 Delphi 5 应用程序,我注意到 Math.Floor 函数的一些内容。

我有一个表达式,我想计算

的 Floor

但是当我计算楼层时

我最终得到一个显然不正确的值,可能是由于整数溢出。

我想按照建议使用 modulo 运算符 here,但看起来 mod 不适用于这些操作数。

一定有办法...

感谢 David A 的建议:

function CardinalFloor(X: Extended): Cardinal;
begin
  Assert(X>=0);
  Result := Cardinal(Trunc(X));
end;

是一种可能的解决方法