我在 Pascal 中有一个整数变量。有没有我可以使用的函数可以将该值四舍五入到最接近的 1000,例如:
RoundTo(variable, 1000);
有没有这样的东西存在?还是我应该尝试使用另一种方法?
谢谢!
此类问题的一般解决方案是在舍入前后缩放,例如
y = 1000 * ROUND(x / 1000);
使用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) = 0和RoundTo(1500, 3) = 2000。
x = 1000*(x/1000),或者x = x - (x mod 1000)