首页 > Web开发 > 详细

js数字精度补位

时间:2020-07-02 15:05:28      阅读:55      评论:0      收藏:0      [点我收藏+]
fixD: function(num, precision) {
		if (num + ‘‘ === ‘0‘) {
			return num;
		}
		if (!num) {
			return ‘--‘;
		}
		var newnum = parseFloat(num) + ‘‘;
		if (newnum === ‘NaN‘) {
			return ‘--‘;
		}
		var fixNum = newnum;
		if (Number(num) === parseInt(Number(num))) {
			if (Number(precision) === 0) {
				return num;
			} else {
				// return `${Number(num)}.${‘0‘.repeat(precision)}`
				return Number(num) + ‘.‘ + ‘0‘.repeat(precision);
			}
		}
		if (newnum.toLowerCase().indexOf(‘e‘) > -1) {
			var a = newnum.toLowerCase().split(‘e‘);
			var b = a[0];
			var c = Math.abs(parseFloat(a[1]));
			var d = ‘‘;
			var h = b.length;
			var i;
			if (a[0].split(‘.‘)[1]) {
				b = a[0].split(‘.‘)[0] + a[0].split(‘.‘)[1];
				h = a[0].split(‘.‘)[0].length;
			}
			for (i = 0; i < c - h; i++) {
				d = d + ‘0‘;
			}
			fixNum = ‘0.‘ + d + b;
		}
		// 精度格式化
		// precision初始化
		if (!precision) {
			return fixNum;
		}
		if (parseFloat(num) + ‘‘ === ‘NaN‘) {
			return fixNum;
		}
		var fNum = (fixNum + ‘‘).split(‘.‘);
		if (!fNum[1]) {
			fixNum = parseFloat(fixNum).toFixed(precision);
		} else if (precision === 0) {
			fixNum = parseInt(fixNum, 10);
		} else if (fNum[1].length > precision) {
			fixNum = fNum[0] + ‘.‘ + fNum[1].substr(0, precision);
		} else {
			fixNum = parseFloat(fixNum).toFixed(precision);
		}
		return fixNum;
	},

  

js数字精度补位

原文:https://www.cnblogs.com/alantao/p/13224223.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!