经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JSJS库框架 » JavaScript » 查看文章
好用的JS数字格式化
来源:cnblogs  作者:飞叶子  时间:2018/11/5 11:29:30  对本文有异议

/*
*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 ? '%' : '');
}
};

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号