javascript parseFloat '500,000' возвращается 500, когда мне нужно 500000

Как это был бы хороший способ обработать это?

Я уже думал при удалении запятой и затем парсинге плавать.

Вы знаете лучший/более чистый путь?

Спасибо

36
задан DanC 8 July 2010 в 16:15
поделиться

4 ответа

Нет. Удалите запятую.

14
ответ дан 27 November 2019 в 05:15
поделиться

Вы можете использовать метод замены строки, но не в одной строке, как это позволяет сделать regexp.

while(str.indexOf(',')!=-1)str= str.replace(',','');
parseFloat(str);

Или чтобы сделать одно выражение без regexp=

return parseFloat(str.split(',').join(''));

Я бы использовал regexp.

6
ответ дан 27 November 2019 в 05:15
поделиться

Основываясь на идее @kennebec, если вы хотите убедиться, что запятые указаны правильно и не хотите заменять запятые, вы можете попробовать что-то вроде этого:

function myParse(num) {
  var n2 = num.split(",")
  out = 0
  for(var i = 0; i < n2.length; i++) {
    out *= 1000;
    out += parseFloat(n2[i])
  }
  return out
}
alert(myParse("1,432,85"));
// Returns 1432085, as the comma is misplaced.

Это может быть не так быстро, но вы хотели альтернативы :)

0
ответ дан 27 November 2019 в 05:15
поделиться
parseFloat( theString.replace(/,/g,'') );
78
ответ дан 27 November 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: