好用的JS数字格式化

2018-11-05 08:24:15来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

/*
*js格式化数字代码
*
*value: 要格式化的数字值
*scale: 最多保留几位小数
*zeroed: 是否保留尾0
*percented: 是否转称百分比形式
*
*/
function formatNumber(value, scale, zeroed, percented){
if (value == null)
return percented ? '0%' : 0;
var mr = (''+value).match(/^\d+\.?\d*$/);
if (!mr)
return percented ? '0%' : 0;
mr = (percented ? (value = Number(mr[0]) * 100)+'' : mr[0]).split('.');console.info(mr);
if (mr.length == 1)
return (zeroed ? (mr[0] + ((function(){var r = '.';for (var i = 0; i < scale; i++) {
r += '0';
}return r;}()))) : mr[0]) + (percented ? '%' : '');
var mr_l = mr[0], mr_r = mr[1];
if (mr_r.length == scale)
return (zeroed ? (mr_l + '.' + mr_r) : (value + '').replace(/\.*0+$/, '')) + (percented ? '%' : '');
else if (mr_r.length < scale)
return (zeroed ? value + ((function(){var r = ''; for (var i = 0; i < scale - mr_r.length; i++) {
r += '0';
}return r;})()) : (value + '').replace(/\.*0+$/, '')) + (percented ? '%' : '');
else {
var _s = mr_r.substr(0, scale + 1);
_s = _s.charAt(scale) > 4 ? (Number(_s.substring(0, scale)) + 1) + '' : _s.substring(0, scale);
if (_s.length == (scale + 1)){
mr_l = (Number(mr_l) + Number(_s.charAt(0))) + '';
_s = _s.substring(1);
}
return (zeroed ? (mr_l + '.' + _s) : (mr_l + (_s.match(/^0*$/) ? '' : ('.' + _s.replace(/0+$/, '')))))
+ (percented ? '%' : '');
}
};

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Vue.js-04:第四章 - 页面元素样式的设定

下一篇:JavaScript -- 时光流逝(十):Screen 对象、History 对象、Loc