0

我在 Pascal 中有一个整数变量。有没有我可以使用的函数可以将该值四舍五入到最接近的 1000,例如:

RoundTo(variable, 1000);

有没有这样的东西存在?还是我应该尝试使用另一种方法?

谢谢!

4

3 回答 3

2

此类问题的一般解决方案是在舍入前后缩放,例如

y = 1000 * ROUND(x / 1000);
于 2013-04-11T10:14:15.480 回答
1

使用RoundTo(variable, 3).

第二个参数指定要四舍五入的数字。因为你想四舍五入到 1000 = 10 3你需要指定3,而不是1000

文档RoundTo说:

function RoundTo(const AValue: Extended; const ADigit: TRoundToEXRangeExtended): Extended;

使用“银行家的四舍五入”将浮点值四舍五入为指定的数字或十的幂。

ADigit 表示您希望 AValue 舍入到的 10 次方。它可以是从 –37 到 37(含)的任何值。

以下示例说明了 RoundTo 的使用:

RoundTo(1234567, 3) = 1235000

(我遗漏了与您的问题无关的部分)


旁注:RoundTo使用银行家回合,所以RoundTo(500, 3) = 0RoundTo(1500, 3) = 2000

于 2013-04-11T10:16:00.073 回答
0

x = 1000*(x/1000),或者x = x - (x mod 1000)

于 2013-04-11T10:17:08.053 回答