私はChart.JSバーチャートのバーの上に値を追加するには、このコードを持っている:この試みをNaNに丸め(javascript)するのはなぜですか?
//ctx.fillText(addCommas(dataset.data[i]), model.x, y_pos);
ctx.fillText(addCommasRound(dataset.data[i]), model.x, y_pos);
古いコード(addCommasを使用して())、働いていたなどの「1838204.79」などの値を変更します」 1,838,204.79"
Iはしかし、セント/小数点以下を無視するので、私はこのような代替addCommasRound()メソッドを試みた:
function addCommasRound(nStr) {
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return Math.round(x1 + x2);
}
をaddCommas()とaddCommasRound(唯一の違い)が挿入されreturn文にMathRound()を追加します。なぜこの値は "1,838,205"ではなく "NaN"になりますか?
私も最後の行を変更してみました:それは失敗しますが、同じ(「NaNの」)の結果ではない場合だけ見るために...
return Math.round(x1);
。