首页 > Js经典的0.1+0.2问题

Js经典的0.1+0.2问题

由于公司业务,我要使用js给客户开发一个基于网页的数学运算器,所以js的数学运算这坑必须趟
那么JS下0.1+0.2会等于0.30000000004这个问题,请问大家都是如何巧妙解决的呢


Math.round( (.1+.2)*100)/100;//0.3

自己写一个方法就好了。


function fixNumberDecimalDigits(number, digits) {

var formatNumber = parseFloat(number);
if (isNaN(formatNumber)) return false;

var digits = digits || 2;
formatNumber = formatNumber.toString();

var reg = new RegExp('([0-9]+.[0-9]{' + digits +'})[0-9]*');
var stringNumber = formatNumber.replace(reg, "$1");
var decimalPosition = stringNumber.indexOf('.');
if (decimalPosition < 0) {
    decimalPosition = stringNumber.length;
    stringNumber += '.';
}
while (stringNumber.length <= decimalPosition + digits) {
    stringNumber += '0';
}
return stringNumber;

}

var a = 0.1,

b = 0.2,
c = a + b ;

console.log(fixNumberDecimalDigits(c, 1))

【热门文章】
【热门文章】