zoukankan      html  css  js  c++  java
  • js数字精度补位

    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;
    	},
    

      

  • 相关阅读:
    HDU2013 蟠桃记
    HDU2012 素数判定
    I00030 Grades conversion
    HDU2011 多项式求和
    HDU2009 求数列的和
    HDU2005 第几天?【日期计算】
    HDU2004 成绩转换
    HDU2006 求奇数的乘积
    HDU2007 平方和与立方和【序列处理】
    HDU2010 水仙花数【进制+趣味程序】
  • 原文地址:https://www.cnblogs.com/alantao/p/13224223.html
Copyright © 2011-2022 走看看