在JavaScript中,小数点后仅返回一位时如何显示第二个零?

How to display second zero when only single digit is returned after decimal, in JavaScript?

我这里有两个函数...

function getCostOne() {
  var cost = 1.5;  
  return 1 * cost.toFixed(2);
}

和...

function getCostTwo() {
  var cost = 1.5;  
  return 1 + cost.toFixed(2);
}

cost.toFixed(2) 和加 cost.toFixed(2) 有什么区别?

为什么乘 return .5 加 return .50

这些功能分别为 return 1.5"11.50"Working JSBin Demo...

console.log(1 * '1.50');
console.log(1 + '1.50');

看起来字符串在第一种情况下被强制转换(就像您调用了 parseFloat('1.50') 然后在第二种情况下连接了一样。但是,这只是结果 在我自己的浏览器上看看官方的MDN Web Docs...

console.log('foo' * 2);
// expected output: NaN

所以,Chrome 可能处理得很好,但我不希望所有浏览器都出现这种行为!

如果你想让他们都return绝对正确的数字,先做所有的数学逻辑,然后用toFixed()格式化。该代码看起来像...

function getCostTwo() {
  var cost = 1.5;
  cost += 1;     // do the math logic FIRST!
  return cost.toFixed(2);   // once the number is just right, we format it!
}