parseFloat & toFixed 只返回 1 个小数点
parseFloat & toFixed only returning 1 decimal point
在下面的工作中,当记录数组时 'tips' 似乎推入其中的数字只有一位小数。
在加入 parseFloat 之前它会 return 2 个小数点,但是它被 return 编辑为一个字符串。添加 parseFloat 后,它现在似乎只有 return 一个小数点。
谢谢。
var tips = [];
var calculateTip = function(bill) {
switch (true) {
case bill < 50:
tips.push(parseFloat((bill * 0.2).toFixed(2)));
break;
case bill >= 50 && bill < 201:
tips.push(parseFloat((bill * 0.15).toFixed(2)));
break;
default:
tips.push(parseFloat((bill * 0.10).toFixed(2)));
}
}
calculateTip(124);
calculateTip(48);
calculateTip(268);
console.log(tips);
Number.prototype.toFixed()
returns number
的 string
表示,你用正确的小数位数调用它,但如果你将它解析回 number
与 parseFloat
,那些将消失,因为 number
不关心尾随零。
您可以通过删除 parseFloat
:
来解决这个问题
const tips = [];
function calculateTip(bill) {
if (bill < 50)
tips.push((bill * 0.2).toFixed(2));
else if (bill >= 50 && bill < 201)
tips.push((bill * 0.15).toFixed(2));
else
tips.push((bill * 0.10).toFixed(2));
}
calculateTip(124);
calculateTip(48);
calculateTip(268);
console.log(tips);
Javascript 中的数字根据需要输出到控制台,小数位数不限。
console.log(1.0000001)
console.log(1.1)
您所有的数字都只显示一位小数,因为它们只有一位小数。如果你想以特定的精度显示它们,你应该 return 一个字符串。
var tips = [];
var calculateTip = function(bill) {
switch (true) {
case bill < 50:
tips.push((bill * 0.2).toFixed(2));
break;
case bill >= 50 && bill < 201:
tips.push((bill * 0.15).toFixed(2));
break;
default:
tips.push((bill * 0.10).toFixed(2));
}
}
calculateTip(124);
calculateTip(48);
calculateTip(268);
console.log(tips);
我将 toFixed 方法移到了您的 parseFloat 旁边,它返回了您期望的结果:
var tips = [];
var calculateTip = function(bill) {
switch(true) {
case bill < 50:
tips.push(parseFloat((bill * 0.2)).toFixed(2));
break;
case bill >= 50 && bill < 201:
tips.push(parseFloat((bill * 0.15)).toFixed(2));
break;
default:
tips.push(parseFloat((bill * 0.10)).toFixed(2));
}
}
calculateTip(124);
calculateTip(48);
calculateTip(217);
console.log(tips);
在下面的工作中,当记录数组时 'tips' 似乎推入其中的数字只有一位小数。
在加入 parseFloat 之前它会 return 2 个小数点,但是它被 return 编辑为一个字符串。添加 parseFloat 后,它现在似乎只有 return 一个小数点。
谢谢。
var tips = [];
var calculateTip = function(bill) {
switch (true) {
case bill < 50:
tips.push(parseFloat((bill * 0.2).toFixed(2)));
break;
case bill >= 50 && bill < 201:
tips.push(parseFloat((bill * 0.15).toFixed(2)));
break;
default:
tips.push(parseFloat((bill * 0.10).toFixed(2)));
}
}
calculateTip(124);
calculateTip(48);
calculateTip(268);
console.log(tips);
Number.prototype.toFixed()
returns number
的 string
表示,你用正确的小数位数调用它,但如果你将它解析回 number
与 parseFloat
,那些将消失,因为 number
不关心尾随零。
您可以通过删除 parseFloat
:
const tips = [];
function calculateTip(bill) {
if (bill < 50)
tips.push((bill * 0.2).toFixed(2));
else if (bill >= 50 && bill < 201)
tips.push((bill * 0.15).toFixed(2));
else
tips.push((bill * 0.10).toFixed(2));
}
calculateTip(124);
calculateTip(48);
calculateTip(268);
console.log(tips);
Javascript 中的数字根据需要输出到控制台,小数位数不限。
console.log(1.0000001)
console.log(1.1)
您所有的数字都只显示一位小数,因为它们只有一位小数。如果你想以特定的精度显示它们,你应该 return 一个字符串。
var tips = [];
var calculateTip = function(bill) {
switch (true) {
case bill < 50:
tips.push((bill * 0.2).toFixed(2));
break;
case bill >= 50 && bill < 201:
tips.push((bill * 0.15).toFixed(2));
break;
default:
tips.push((bill * 0.10).toFixed(2));
}
}
calculateTip(124);
calculateTip(48);
calculateTip(268);
console.log(tips);
我将 toFixed 方法移到了您的 parseFloat 旁边,它返回了您期望的结果:
var tips = [];
var calculateTip = function(bill) {
switch(true) {
case bill < 50:
tips.push(parseFloat((bill * 0.2)).toFixed(2));
break;
case bill >= 50 && bill < 201:
tips.push(parseFloat((bill * 0.15)).toFixed(2));
break;
default:
tips.push(parseFloat((bill * 0.10)).toFixed(2));
}
}
calculateTip(124);
calculateTip(48);
calculateTip(217);
console.log(tips);