javascript 将数字转成货币类型( 1000 => ¥1,000.00)

function currency (value, decimals, currency) {  
  var _reg = /(\d{3})(?=\d)/g;
  value = parseFloat(value);
  if(!isFinite(value) || (!value && value !== 0)) return ''; 
  decimals = decimals || 2;
  currency = currency || '¥';

  var stringVal = Math.abs(value).toFixed(decimals);//去符号四舍五入
  var _int = decimals ? stringVal.slice(0, -1 - decimals) : stringVal;//取整数部分
  var i = _int.length % 3;
  var head = i > 0 ? (_int.slice(0, i) + (_int.length > 3 ? ',' : '')) : ''//判断整数部分是否刚好能够被3整除
  var _float = decimals ? stringVal.slice(-1 - decimals) : '';//取出小数部分
  var sign = value < 0 ? '-' : '';//判断正负数
  return sign + currency + head + _int.slice(i).replace(_reg, '$1,') + _float;//拼接最后的值
}  

var str = '11211234567890.0262213121';  
currency(str, 2, '¥');

你可能感兴趣的:(javascript 将数字转成货币类型( 1000 => ¥1,000.00))