ソースデジタル方式の長さを分割することによって、ここでゲット
/ ** *番号の数量。例えば、0.1、1、10、100 * * @param {数}ヴァル * @return {数} * / 関数量(ヴァル){ Math.pow(10、quantityExponent(ヴァル))を返します。 } 関数quantityExponent(ヴァル){ 戻りMath.floor(Math.log(ヴァル)/ Math.LN10)。 } / ** * xにほぼ等しい「素敵な」数を見つけます。真=ラウンドであれば数ラウンド、 偽=ラウンド場合*天井を取ります。主要所見は、「素敵な」ということである 小数で*番号は1、2、5、及びこれらの数値のすべてのパワー・オブ・10の倍数です。 * *グラフィック宝石の「グラフのラベルのためのニース番号」を参照してください。 * * @param {数}ヴァル非負の値。 * @param {ブール}ラウンド * @return {数} * / 関数ニース(ヴァル、ラウンド){ にconsole.log(ヴァル、ラウンド'実splitNum == 1111 ===>を得ます')。 VAR指数= quantityExponent(ヴァル)。 VaRのEXP10 = Math.pow(10、指数)。 =ヴァル/ EXP10 F VAR。// 1 <= <10 F VaRのNF。 IF(丸){ IF(F <1.5){ NF = 1。 } そうであれば(F <2.5){ NF = 2。 } そうであれば{(<4 F) NF = 3。 } そうであれば{(<7 F) NF = 5。 } 他{ NF = 10。 } } 他{ IF(F <1){ NF = 1。 } そうであれば{(<2 F) NF = 2。 } そうであれば{(<3 F) NF = 3。 } そうであれば{(<5 F) NF = 5。 } 他{ NF = 10。 } } ヴァル= NF * EXP10。 //(IEEE 754を参照してください)3 * 0.1 === 0.30000000000000004問題を修正。 // 20 toFixedの下限uppperです。 constの素敵=指数> = -20?+ val.toFixed(指数<0 -exponent:0?):ヴァル; 素敵返します。 }
使用
// valの転送は次のとおりです。(最大/(splitNumberのあなたの現在のデータ配列| 5)) 、5部門を使用していない場合は、// splitNumberはあなたが分割されたセグメントの数を書き込む //ラウンドパス偽 Iここでは、たとえば、//を24渡す (偽24)ニース; // 20はステップ値である20に戻る
//チャートが積層されているデータの配列が付加は、次に計算された後に最大値を加算することによって取得する必要がある場合
ニース(37、偽) ; //