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
そのようなことをする方法はありますか?どうもありがとう
xを最も近い500に丸めたい場合は、500で除算し、最も近い整数に丸めてから、もう一度500を掛けることができます。
x_rounded = 500 * Math.round(x/500);
最も近いyに丸めるには、500をyに置き換えます。
x_rounded = 250 * Math.round(x/250);
うまくいけば私の数学は正しいですが、ここに「丸める」さまざまな方法があります
function sigfig(n, sf) {
sf = sf - Math.floor(Math.log(n) / Math.LN10) - 1;
sf = Math.pow(10, sf);
n = Math.round(n * sf);
n = n / sf;
return n;
}
function precision(n, dp) {
dp = Math.pow(10, dp);
n = n * dp;
n = Math.round(n);
n = n / dp;
return n;
}
function nearest(n, v) {
n = n / v;
n = Math.round(n) * v;
return n;
}
this api を使用すると、次のコマンドを使用して、任意の数値を任意の数値の最も近い倍数に丸めることができます。
$scm.round(number to be rounded).toNearest(multiple to which you want to round);
たとえば、536を500に最も近い値に丸めたい場合は、次を使用します。
$scm.round(536).toNearest(500);