如何在 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中用逗号分隔的值匹配数组?

使用 Javascript 在逗号分隔的字符串中查找新值

Dygraphs,逗号作为小数分隔符

如何在 javascript (ionic | Angular | NodeJS | MongoDB) 中将包含对象的数组展平和减少为逗号分隔的字符串

javascript 如何截取两个逗号之间的字符串

javascript逗号分隔符和会话存储