您的当前位置:首页>全部文章>文章详情

js保留两位小数的合理处理方法

发表于:2021-07-14 09:03:25浏览:2329次TAG: #小数 #javascript

js如何保留两位或者多位小数?相信大家的第一反应可能是使用 toFixed() 方法,但是使用这个方法在小数位不足的情况下会在后面补 0,比如:

const num = 0.6;
num.toFixed(2)   // 0.60

严格来说,这个结果是不符合要求的,还有一个需要注意的问题,js的运算属于弱运算,小数的相加结果可能并不符合预期,相信很多开发者也碰到过,比如:

console.log(0.2 + 0.4)    // 0.6000000000000001

所以这里建议使用 Math.floor() 方法来处理小数位比较合适,先给结果乘以 100,再通过 Math.floor() 取得整数部分,然后再除以 100,最后得到符合要求的结果,比如:

const num1 = 0.5;
const num2 = 0.62352;
Math.floor(num1 * 100)/100   	// 0.5
Math.floor(num2 * 100)/100	    // 0.62

如果要保留更多为小数就以此类推了,比如保留三位小数:

const num1 = 0.5;
const num2 = 0.55;
const num3 = 0.62352;
Math.floor(num1 * 1000)/1000  	// 0.5
Math.floor(num2 * 1000)/1000  	// 0.55
Math.floor(num3 * 1000)/1000	    // 0.623

虽然过程比toFixed方法多了一个处理步骤,但是得到的结果更理想。