在Delphi中使用round(double)进行无效的浮点运算

时间:2018-12-09 15:45:08

标签: delphi rounding

我正在使用Delphi 7,其中有变量v:double,其值设置为5,5889002873e + 22。

CurrencyDecimals为2

当我使用round(v)时,出现此错误:

无效的浮点运算

我不清楚为什么会发生,因为double的范围是-308到+308。如何正确执行四舍五入?

1 个答案:

答案 0 :(得分:4)

Round的结果是整数变量(help

function Round(X: Real): Int64;

但是Int64类型的值不能超过2^63 - 1(约9*10^18),因此

  

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

此舍入的目的是什么?