我试图摆脱货币符号以使用 parseFloat 计算新价格,但由于某种原因它返回 nan。

var pricePerUser = "£19.99";
pricePerUser = parseFloat(pricePerUser) * 3;
console.log(pricePerUser); //Returns NaN

最佳答案

parseFloat() 将解析字符串的每个字符,直到找到一个非数字值。 £ 是第一个字符,因此它找不到要解析的数字。您需要在调用 parseFloat() 之前删除它:

var pricePerUser = "£19.99";
pricePerUser = parseFloat(pricePerUser.replace('£', '')) * 3;
console.log(pricePerUser);

如果在向 UI 显示输出时需要 2DP 精度,请使用 toFixed(2):
console.log(pricePerUser.toFixed(2));

关于javascript - parseFloat 返回 NaN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31830044/

10-09 21:10