Delphi中使用舍入(双精度)的浮点运算无效



我使用的是Delphi 7,其中变量v:bdouble设置为55889002873e+22。

CurrencyDecimals是2

当我使用round(v(时,我得到这个错误:

无效的浮点操作

我不清楚为什么会发生这种情况,因为二重的范围是指数-308到+308。如何进行取整才能正确?

Round的结果是整数变量(帮助(

function Round(X: Real): Int64;

但是Int64类型不能包含大于2^63 - 1(大约是9*10^18(的值,因此

如果X的四舍五入值不在Int64范围内,则会生成运行时错误

此四舍五入的目的是什么?

最新更新