有人可以解释幕后发生的事情吗,我如何获得预期的结果?我试图转换一些字符串并将其添加例如。将'1.7888884448','2.359848484'和'3.78333833'更改为1.8,2.4和3.8
然后做1.8 + 2.4 + 3.8 = 8。我怎样才能找到原因:

let x = parseFloat('95.568').toFixed(2) + 2 // it's concatenating
console.log (x)
// output 95.572
console.log(typeof x)
// out put 'string'

let y =  parseFloat('95.568') + 2
console.log (y)
// output 97.568
console.log(typeof y)
// out put 'number'

最佳答案

您可以先添加它们,然后将精度提高到2个小数点。结果将更加准确。


function addDecimalStrings(decimalStringArr) {
    let sum = 0;
    for(let i=0; i<decimalStringArr.length; i++){
        // Parse and add
        sum = sum + parseFloat(decimalStringArr[i]);
    }

    // Convert to two decimal points
    return sum.toFixed(2);
}

关于node.js - parseFloat(x).toFixe(2)返回一个字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48641954/

10-11 22:36