160

最も近い5 の倍数ではなく、の 5 の倍数に切り上げる整数値 (長さが 2 から 5 桁の範囲) を受け取るユーティリティ関数が必要です。

function round5(x)
{
    return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;
}

を実行するround5(32)と、30必要な 35 が得られます。
を実行すると、必要な 40 が round5(37)得られます。35

を実行すると、必要な 135 がround5(132)得られます。 を実行すると、必要な 140 が 得られます。130
round5(137)135

等...

どうすればいいですか?

4

10 に答える 10

30
const roundToNearest5 = x => Math.round(x/5)*5

これにより、数値が最も近い 5 に丸められます。常に最も近い 5 に切り上げるには、 を使用しますMath.ceil。同様に、常に切り捨てるには、Math.floor代わりに を使用しMath.roundます。その後、他の関数と同じようにこの関数を呼び出すことができます。例えば、

roundToNearest5(21)

戻ります:

20
于 2019-09-28T14:54:48.900 に答える
3
voici 2 solutions possibles :
y= (x % 10==0) ? x : x-x%5 +5; //......... 15 => 20 ; 37 => 40 ;  41 => 45 ; 20 => 20 ; 

z= (x % 5==0) ? x : x-x%5 +5;  //......... 15 => 15 ; 37 => 40 ;  41 => 45 ; 20 => 20 ;

よろしくポール

于 2016-03-16T09:27:54.250 に答える
0

// 正確に丸める

var round = function (value, precision) {
    return Math.round(value * Math.pow(10, precision)) / Math.pow(10, precision);
};

// 精度で 5 に丸めます

var round5 = (value, precision) => {
    return round(value * 2, precision) / 2;
}
于 2018-07-11T11:43:02.123 に答える
-2
if( x % 5 == 0 ) {
    return int( Math.floor( x / 5 ) ) * 5;
} else {
    return ( int( Math.floor( x / 5 ) ) * 5 ) + 5;
}

多分?

于 2013-09-23T07:03:04.480 に答える