我在 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)