0

ROUND 関数をどのように実装しますか。

ROUND(value, number of digits)
pi=3.14159265358979323
so, for example, ROUND(pi, 3) = 3.142

これらの関数を自由に使用できる場合:
AINT - 値を整数に切り捨てます
ANINT - 最も近い整数を計算します NINT -
引数に最も近い整数を返します

または、上記の機能を気にしないで、フローティング ROUND はどのように行われますか?

4

2 に答える 2

4

オーバーフローを心配する必要がない場合は、次のようにします。

ROUND(value, nod) = NINT(value * POWER(10, nod)) / POWER(10, nod)

それ以外の場合は、整数部分と浮動小数点部分を別々に処理する必要があります。

于 2009-05-25T14:33:27.837 に答える
1

私は仮定します、私の疑似コードを許してください

function Round(value, num){
    numsToSave = POWER(10, num);
    value *= numsToSave ; //Get the numbers we don't want rounded on the left side of the floating point
    value = AINT( ANINT(value) );
    value /= numsToSave;

    return value;
}

また

function Round(value, num){
    numsToSave = POWER(10, num);
    value *= numsToSave ; //Get the numbers we don't want rounded on the left side of the floating point
    value = NINT(value);
    value /= numsToSave;

    return value;
}
于 2009-05-25T14:30:54.503 に答える