【发布时间】:2013-04-03 11:47:15
【问题描述】:
我在 Pascal 中有一个整数变量。有没有我可以使用的函数可以将该值四舍五入到最接近的 1000,例如:
RoundTo(variable, 1000);
有类似的东西存在吗?还是我应该尝试使用其他方法?
谢谢!
【问题讨论】:
标签: function variables integer pascal rounding
我在 Pascal 中有一个整数变量。有没有我可以使用的函数可以将该值四舍五入到最接近的 1000,例如:
RoundTo(variable, 1000);
有类似的东西存在吗?还是我应该尝试使用其他方法?
谢谢!
【问题讨论】:
标签: function variables integer pascal rounding
此类问题的一般解决方案是在舍入前后缩放,例如
y = 1000 * ROUND(x / 1000);
【讨论】:
使用RoundTo(variable, 3)。
第二个参数指定要四舍五入的数字。由于您想四舍五入到 1000 = 103,您需要指定 3,而不是 1000。
function RoundTo(const AValue: Extended; const ADigit: TRoundToEXRangeExtended): Extended;使用“银行家四舍五入”将浮点值四舍五入为指定数字或十的幂。
ADigit 表示您希望 AValue 舍入到的十的幂。它可以是 –37 到 37(含)之间的任何值。
以下示例说明 RoundTo 的使用:
RoundTo(1234567, 3) = 1235000
(我省略了与您的问题无关的部分)
旁注:RoundTo 使用银行家的回合,所以 RoundTo(500, 3) = 0 和 RoundTo(1500, 3) = 2000。
【讨论】:
freepascal,RoundTo。
x = 1000*(x/1000), 或 x = x - (x mod 1000)
【讨论】: