19

iamは、最も近い5に切り上げて切り下げてから、2つの数値の最小公分母を見つける方法を探しています。チャートのy-skaleのキャプションに必要です。

これはこれまでの私のコードです:

function toN5( x ) {
    var i = 1;
    while( x >= 100 ) {
        x/=10; 
        i*=10;
    }
    var remainder = x % 5;
    var distance_to_5 = (5 - remainder) % 5;
    return (x + distance_to_5) * i;
}

ターゲットは次のようなものです。最大値(最も近い5に切り上げ)

1379.8 -> 1500

逆に-最小値(最も近い5に切り捨て)

41.8 -> 0

次に、250や500のような一般的な分母を見つけたい

0-> 250-> 500-> 750-> 1000-> 1250-> 1500

また:

0 -> 500 -> 1000 -> 1500

そのようなことをする方法はありますか?どうもありがとう

4

3 に答える 3

53

xを最も近い 500に丸めたい場合は、それを 500 で割り、最も近い整数に丸めてから、もう一度 500 を掛けることができます。

x_rounded = 500 * Math.round(x/500);

最も近いyに丸めるには、 500 をyに置き換えます。

x_rounded = 250 * Math.round(x/250);
于 2012-05-10T14:18:00.727 に答える
1

この APIを使用すると、次のコマンドを使用して、任意の数値を任意の数値の最も近い倍数に丸めることができます。

$scm.round(number to be rounded).toNearest(multiple to which you want to round);

たとえば、536 を最も近い 500 に丸めたい場合は、次のように使用します。

$scm.round(536).toNearest(500);

于 2017-08-04T00:39:06.223 に答える