JS13 -- 小数(保留小数点后几位,小数点失精)

1.split分割小数点前后,分类获取

/* 
 * val 传入的值;bit 保留几位
 * 返回是字符串
 */
function num (val,bit) {
    let arrMoney = val.toString().split('.');
    if(arrMoney.length === 1) {					// 传入来没小数点时
    	return val
    } else {
    	return arrMoney[0] + '.' + arrMoney[1].substr(0,bit);
   	}
}

  

2.四舍五入

function num (val, bit) {
    return val.toFixed(bit)
}

3.小数点失精

let f1 = 0.00001 * 100;
let f2 = 0.000001 * 100;
console.log(f1)				// 0.001
console.log(f2)				// 0.00009999999999999999

// 解决方法:先乘以比小数位大的整数,再除以比小数位大的整数/100
let f4 = (0.000001 * 100000000) / 1000000;			// (100000000 / 1000000) = 100;
console.log(f4)

let f3 = 0.0000001 * 100; console.log(f3) // 0.000009999999999999999

  

 

原文地址:https://www.cnblogs.com/lgyong/p/11946956.html