繁体   English   中英

在Javascript for Adob​​e Acrobat中使用逗号格式化货币

[英]Formatting currency with commas in Javascript for Adobe Acrobat

将Javascript添加到PDF时,我是否可以打印浮点数,使其看起来像这样:$ 50,0000?

我不关心国际化。

我可以使用util.printf,但它不会放入逗号。

你的意思是通过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;
}

一个简单的添加逗号功能是:

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);
}

可能有一百万个类似的功能,试试谷歌。

编辑

修复了长度> 6和num%3 == 0的问题。添加了对-ve数的支持

有点晚了但......

printf 添加逗号。

util.printf("%,0.0f", numberValue);

有关更多信息,请参阅JavaScript™forAcrobat®API参考资料...

此解决方案也适用于负数。

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("");
}

在这里小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM