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, '¥');
网友评论