如何在 JavaScript 中使用逗号分隔符从字符串中生成数字(“23,21”---> 23,21)
Posted
技术标签:
【中文标题】如何在 JavaScript 中使用逗号分隔符从字符串中生成数字(“23,21”---> 23,21)【英文标题】:How to make a number from string with comma separators in JavaScript ("23,21" ---> 23,21) 【发布时间】:2021-09-22 09:57:45 【问题描述】:有谁知道如何在 JS 中从带有逗号分隔符的字符串中生成一个数字。 我得到:“23,21”,我想把它作为一个数字值。
"23,21" --> 23,21
【问题讨论】:
这是不可能的。数字有一个点作为小数分隔符。您可以转换"23,21"
--> 23.21
或 "23.21"
--> 23.21
。
【参考方案1】:
检查你是否想要这个。
var str = '23,21';
console.log((str.split(",").map((i) => Number(i))));
【讨论】:
【参考方案2】:您可以使用https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Global_Objects/parseFloat
但在您需要将逗号替换为点之前。
parseFloat('23,21'.replace(/,/, '.')); // == 23.21
let x = '16,5';
parseFloat(x.replace(/,/, '.')); // == 16.5
【讨论】:
您的代码不起作用:jsfiddle.net/02tjm3vs 这段代码转换"23,21"
--> 23.21
。这不是问题。
@jabaa 你是对的,我的错。修好了。
你无法修复它。这是不可能的
这实际上是您在 cmets 中提出的解决方案,Tomasz 批准它解决了他的问题。【参考方案3】:
您可以但不能使用“逗号”(,)。在某些国家/地区,人们确实使用逗号而不是点来写小数。如果是这种情况,那么您可以做的是:
let a = "23,25";
let b = a.replaceAll(',', '.');
console.log(parseFloat(b));
但是用逗号做这个也没有错。但是你只会得到小数点前的部分。
即23 在你的情况下
【讨论】:
以上是关于如何在 JavaScript 中使用逗号分隔符从字符串中生成数字(“23,21”---> 23,21)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 javascript (ionic | Angular | NodeJS | MongoDB) 中将包含对象的数组展平和减少为逗号分隔的字符串