我在Pascal中有一个Integer变量。是否有任何可以使用的功能可以将该值舍入到最接近的1000,例如:
RoundTo(variable, 1000);
是否存在任何类型?或者我应该尝试使用另一种方法吗?
谢谢!
答案 0 :(得分:2)
这种问题的一般解决方案是在舍入之前和之后进行缩放,例如
y = 1000 * ROUND(x / 1000);
答案 1 :(得分:1)
使用RoundTo(variable, 3)
。
第二个参数指定要舍入的数字。由于你想要舍入到1000 = 10 3 ,你需要指定3
,而不是1000
。
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) = 0
和RoundTo(1500, 3) = 2000
。
答案 2 :(得分:0)
x = 1000*(x/1000),
或x = x - (x mod 1000)