数字工具类详解编程语言

/** 
* @author: 苗士军 
* @description 数字工具类 
*/ 
NumberUtils = { 
/** 
* @description 定义0数字对象 
*/ 
zero: Number(0), 
/** 
* @description 判断是否是数字 
* @param val 
* @return {boolean} 
*/ 
isNumber: function (val) { 
if (val == '' || isNaN(val)) { 
return false; 
} 
return true; 
}, 
/** 
* @description 转换数字对象 
* @param val 
* @return {*} 
*/ 
toNumber: function (val) { 
if (this.isNumber(val)) { 
return Number(val); 
} else { 
return this.zero; 
} 
}, 
/** 
* @description 获取整数对象 
* @param val 
* @return {*} 
*/ 
parseInt: function (val) { 
return this.toNumber(parseInt(val)); 
}, 
/** 
* @description 获取小数对象 
* @param val 
* @return {*} 
*/ 
parseFloat: function (val) { 
return this.toNumber(parseFloat(val)); 
}, 
/** 
* @description  获取向上取整后的值 
* @param val 
* @return {*} 
*/ 
ceil: function (val) { 
return this.toNumber(Math.ceil(val)); 
}, 
/** 
* @description 获取小于x的最大整数 
* @param val 
* @return {*} 
*/ 
floor: function (val) { 
return this.toNumber(Math.floor(val)); 
}, 
/** 
* @description 获取四舍五入后的整数 
* @param val 
* @return {*} 
*/ 
round: function (val) { 
return this.toNumber(Math.round(val)); 
}, 
/** 
* @description 获取数字的最接近的单精度浮点型表示 
* @param val 
* @return {*} 
*/ 
fround: function (val) { 
return this.toNumber(Math.fround(val)); 
}, 
/** 
* @description 数字格式化 
* @param number 要格式化的数字 
* @param decimals 保留几位小数 
* @param decPoint 小数点符号 
* @param thousandsMark 千位符号 
* @param roundMode 舍入参数,默认 "ceil" 向上取,"floor"向下取,"round" 四舍五入 
* @return {string} 
*/ 
numberFormat: function (number, decimals, decPoint, thousandsMark, roundMode) { 
number = (number + '').replace(/[^0-9+-Ee.]/g, ''); 
roundMode = roundMode || "ceil"; //"ceil","floor","round" 
var n = !isFinite(+number) ? 0 : +number, 
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), 
sep = (typeof thousandsMark === 'undefined') ? ',' : thousandsMark, 
dec = (typeof decPoint === 'undefined') ? '.' : decPoint, 
s = '', 
toFixedFix = function (n, prec) { 
var k = Math.pow(10, prec); 
console.log(); 
return '' + parseFloat(Math[roundMode](parseFloat((n * k).toFixed(prec * 2))).toFixed(prec * 2)) / 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); 
} 
}

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/18088.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论