Как сделать число из строки с разделителями запятых в JavaScript («23,21» —> 23,21)

#javascript #parsing #numbers #comma

Вопрос:

Кто-нибудь знает, как сделать число из строки с разделителями запятых в JS. Я получил: «23,21», и я хочу получить его в виде числового значения.

«23,21» —> 23,21

Комментарии:

1. Это невозможно. Число имеет точку в качестве десятичного разделителя. Вы можете конвертировать "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
 

Комментарии:

1. Ваш код не работает: jsfiddle.net/02tjm3vs

2. Этот код преобразует "23,21" —> > 23.21 . Вопрос не в этом.

3. @jabaa ты прав, мой плохой. Исправил это.

4. Ты не можешь это исправить. Это невозможно

5. Это буквально решение, которое вы предложили в комментариях, и Томаш одобрил, что оно решило его проблему.

Ответ №3:

Вы можете, но не с помощью «запятой» (,). В некоторых странах люди действительно используют запятые вместо точек для написания десятичных знаков. Если это так, то что вы можете сделать, так это:

 let a = "23,25";
let b = a.replaceAll(',', '.');
console.log(parseFloat(b));
 

Но делать это с запятой тоже не неправильно. Но вы получите только часть до десятичной дроби.

т. е. 23 в вашем случае