0

Pascal に整数変数があります。その値を最も近い 1000 に丸めることができる使用可能な関数はありますか。たとえば、次のようになります。

RoundTo(variable, 1000);

そのようなものは存在しますか?または、私が試してみるべき別の方法はありますか?

ありがとう!

4

3 に答える 3

2

この種の問題の一般的な解決策は、丸めの前後にスケーリングすることです。

y = 1000 * ROUND(x / 1000);
于 2013-04-11T10:14:15.480 に答える
1

を使用しRoundTo(variable, 3)ます。

2 番目のパラメーターは、丸めたい桁数を指定します。1000 = 10 3に丸めたいので3、 ではなくを指定する必要があります1000

ドキュメントにRoundToは次のように書かれています:

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

「バンカー丸め」を使用して、浮動小数点値を指定された桁数または 10 の累乗に丸めます。

ADigit は、AValue を四捨五入する 10 の累乗を示します。–37 から 37 (両端を含む) までの任意の値を指定できます。

次の例は、RoundTo の使用法を示しています。

RoundTo(1234567, 3) = 1235000

(ご質問に関係のない部分は省きました)


補足:RoundToバンカーのラウンドを使用するのでRoundTo(500, 3) = 0、 とRoundTo(1500, 3) = 2000.

于 2013-04-11T10:16:00.073 に答える
0

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

于 2013-04-11T10:17:08.053 に答える