在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!
}
我这里有两个函数...
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!
}