round (マクロ)
パッケージ: CURL.LANGUAGE.COMPILER

2 つの値から、最も近い整数の値に四捨五入された商と、対応する余りを計算します。最も簡単な形式では、単一の値を四捨五入します。

シグネチャ

{round dividend, divisor}:(quotient, remainder)
dividend: 割り算の元の値。これは、整数、浮動小数点、Decimal型、または数量値として評価する式の場合もあります。
divisor:
dividend の除数です。これは、整数、浮動小数点、Decimal、または数量値として評価される式を指定できます。
divisor は省略可能です。その場合は 1 が適用されます。使用された引数の型により、quotient の型は dividend の型と同じになります。

戻り値

最初の戻り値は quotient で、これは dividenddivisor で割り、四捨五入した値として定義されます。 この二つの整数値が両方とも結果の値に近い値である場合は、結果は偶数の整数となります。これにより、多数のアルゴリズムの数値安定性が向上することになります。

2 番目の戻り値は remainder で、これは dividend から quotientdivisor の積を差し引いた値として定義されます。

quotient の型は、dividend div divisor の型と同じです。

remainder の型は quotient の型と同じですが、dividend が数量の場合は、remainderdividend と同じ単位を持ちます。

説明

一方の引数が数量の場合は、両方の引数が同じ単位でなければなりません。そうでないと、例外がスローされます。
両方の引数が整数型で、divisor がゼロの場合は、例外がスローされます。また、どちらか一方の引数が Decimal型 で、divisor がゼロの場合も同様に例外がスローされます。
小数部分が 0.5 であるとき、中間の値を最も近い偶数に丸めるのではなく、正確に端数を切り上げたい場合は、{floor x + 0.5f} の使用を検討してください。
floorceiling、および truncate も参照してください。


例: round を各種の値と共に使用
{text
    {br} {round 3.5}
    {br} {round 4.5}
    {br} {round 3.9}
    {br} {round 3.1}
    {br} {round -3.1}
    {br} {round -3.5}
    {br} {round -3.9}
    {br} {round 8.1, 2}
    {br} {round 8.1m, 2m}
    {br} {round 3hours, 7minutes}
    {br} {round 12cm, 6cm}
    {br} {value {round 12cm / 1cm, 6} * 1cm}
}