有人可以解释引擎盖下发生的事情,我该如何获得预期的结果?我正在尝试转换一些字符串并添加它们。'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);
}
简单地将另一个parsefloat放在周围,它将保持小数数:
parseFloat(parseFloat("9.55656").toFixed(2))
9.56
可以通过
获得所需的解决方案(Math.round( '1.7888884448' * 10 ) + Math.round( '2.359848484' * 10 ) + Math.round( '3.78333833' * 10 ))/10
现在就代码:
parseFloat('95.568').toFixed(2)
返回字符串,javascript中的 string + integer
将整数转换为字符串并附加。
let x = Number(parseFloat('95.568').toFixed(2)) + 2
将给出一个整数