Разбор чисел с разделителем запятой в JavaScript - программирование
Подтвердить что ты не робот

Разбор чисел с разделителем запятой в JavaScript

Я использовал эту функцию, чтобы проверить, является ли значение числом:

function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}

Моя программа должна работать с немецкими значениями. Мы используем запятую как десятичный разделитель вместо точки, поэтому эта функция не работает.

Я попытался сделать это:

n.replace(",",".")

Но он также не работает. Точной функцией, которую я пытался использовать, является:

function isNumber(n) {
    n=n.replace(",",".");
    return !isNaN(parseFloat(n)) && isFinite(n);
}

Число выглядит как 9.000,28 вместо обычного 9,000.28, если мое утверждение недостаточно ясное.

4b9b3361

Ответ 1

Вам нужно сначала заменить (удалить) точки в разделителе тысяч, а затем позаботиться о десятичной дроби:

function isNumber(n) {
    'use strict';
    n = n.replace(/\./g, '').replace(',', '.');
    return !isNaN(parseFloat(n)) && isFinite(n);
}

Ответ 2

var number = parseFloat(obj.value.replace(",",""));

Возможно, вам также захочется, чтобы это было другим путем...

obj.value = number.toLocaleString('en-US', {minimumFractionDigits: 2});

Ответ 3

Попробуйте это

function isNumber(n) {
    n=n.replace(/,/, '');
    return !isNaN(parseFloat(n)) && isFinite(n);
}