1

Javascript を PDF に追加する場合、50,000 ドルのようにフロートを印刷することはできますか?

私は国際化を気にしません。

util.printf を使用できますが、コンマが挿入されません。

4

4 に答える 4

1

簡単なカンマ追加機能は次のとおりです。

function addCommas(num) {
  var num = String(num);
  var bits, num0, s, f, len, sign = '', result = [];

  if (/^[+-]/.test(num)) {
    sign = num.substring(0,1);
    num = num.substring(1);
  }

  bits = String(num).split('.');
  num0 = bits[0];
  s = 0, f = num0.length % 3 ;
  len = num0.length;

  if (num0.length > 3) {

    while (f <= len) {
      f && result.push(num0.substring(s, f));
      s = f;
      f += 3;
    }
    result = result.join(',') + (bits[1]? '.' + bits[1] : '');
  }
  return sign + (s? result : num);
}

似たような機能はおそらく百万個あるので、Google を試してみてください。

編集

長さ > 6 および num % 3 == 0 の問題を修正 -ve 番号のサポートを追加

于 2012-11-28T02:58:22.093 に答える
1

javascriptでやるつもりだったのですか?これは役に立ちますか。

formatNumber
function formatNumber( num ) {
    var decimalPart = '';
    num = num.toString();
    if ( num.indexOf( '.' ) != -1 ) {
        decimalPart = '.'+ num.split( '.' )[1];
        num = parseInt(num.split( '.' )[0]);
    }
    var array = num.toString().split( '' );
    var index = -3;
    while ( array.length + index > 0 ) {
        array.splice( index, 0, ',' );
        index -= 4;
    }
    return array.join( '' ) + decimalPart;
}
于 2012-11-28T01:23:19.887 に答える
0

このソリューションは、負の数に対しても機能します。

function addCommas( num ) {
    var parts = num.toString(10).split(".");
    parts[0] = parts[0].reverse().replace(/(\d{3})/g, "$1,").reverse();
    return parts.join(".");
}   

String.prototype.reverse = function () {
    return this.split("").reverse().join("");
}

ここでフィドル

于 2012-11-28T08:06:29.620 に答える