如何在Pascal中将整数舍入到最接近的1000?

时间:2013-04-11 10:11:28

标签: function variables integer pascal rounding

我在Pascal中有一个Integer变量。是否有任何可以使用的功能可以将该值舍入到最接近的1000,例如:

RoundTo(variable, 1000);

是否存在任何类型?或者我应该尝试使用另一种方法吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

这种问题的一般解决方案是在舍入之前和之后进行缩放,例如

y = 1000 * ROUND(x / 1000);

答案 1 :(得分:1)

使用RoundTo(variable, 3)

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

documentation for RoundTo说:

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

使用“Banker's rounding”将浮点值舍入到指定的数字或10的幂。

     

ADigit表示您希望AValue四舍五入的十次幂。它可以是-37到37(含)之间的任何值。

     

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

RoundTo(1234567, 3) = 1235000

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


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

答案 2 :(得分:0)

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