js 格式化数字,格式化金额:
function number_format(number, decimals, dec_point, thousands_sep) { ???/* ???* 参数说明: ???* number:要格式化的数字 ???* decimals:保留几位小数 ???* dec_point:小数点符号 ???* thousands_sep:千分位符号 ???* */ ???number = (number + ‘‘).replace(/[^0-9+-Ee.]/g, ‘‘); ???var n = !isFinite(+number) ? 0 : +number, ???????prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), ???????sep = (typeof thousands_sep === ‘undefined‘) ? ‘,‘ : thousands_sep, ???????dec = (typeof dec_point === ‘undefined‘) ? ‘.‘ : dec_point, ???????s = ‘‘, ???????toFixedFix = function (n, prec) { ???????????var k = Math.pow(10, prec); ???????????return ‘‘ + Math.ceil(n * k) / k; ???????}; ????s = (prec ? toFixedFix(n, prec) : ‘‘ + Math.round(n)).split(‘.‘); ???var re = /(-?\d+)(\d{3})/; ???while (re.test(s[0])) { ???????s[0] = s[0].replace(re, "$1" + sep + "$2"); ???} ????if ((s[1] || ‘‘).length < prec) { ???????s[1] = s[1] || ‘‘; ???????s[1] += new Array(prec - s[1].length + 1).join(‘0‘); ???} ???return s.join(dec);}
使用效果:
var num=number_format(1234567.089, 2, ".", ",");//1,234,567.09
再来一个,直接舍去的办法:
function number_format(number, decimals, dec_point, thousands_sep) { ???????/* ???????* 参数说明: ???????* number:要格式化的数字 ???????* decimals:保留几位小数 ???????* dec_point:小数点符号 ???????* thousands_sep:千分位符号 ???????* */ ???????number = (number + ‘‘).replace(/[^0-9+-Ee.]/g, ‘‘); ???????var n = !isFinite(+number) ? 0 : +number, ????????????prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), ???????????sep = (typeof thousands_sep === ‘undefined‘) ? ‘,‘ : thousands_sep, ???????????dec = (typeof dec_point === ‘undefined‘) ? ‘.‘ : dec_point, ???????????s = ‘‘, ???????????toFixedFix = function (n, prec) { ???????????????var k = Math.pow(10, prec); ???????????????return ‘‘ + Math.floor(n * k) / k; ???????????}; ???????s = (prec ? toFixedFix(n, prec) : ‘‘ + Math.floor(n)).split(‘.‘); ???????var re = /(-?\d+)(\d{3})/; ???????console.log(s) ???????while (re.test(s[0])) { ???????????s[0] = s[0].replace(re, "$1" + sep + "$2"); ???????} ????????if ((s[1] || ‘‘).length < prec) { ???????????s[1] = s[1] || ‘‘; ???????????s[1] += new Array(prec - s[1].length + 1).join(‘0‘); ???????} ???????return s.join(dec); ???} ???number_format(1234567.089, 2, ".", ",");//1,234,567.08
js 格式化数字,格式化金额:
原文地址:https://www.cnblogs.com/lguow/p/9324380.html