Zamiana separatora w typie decimal

0

Cześć,
Chciałem Was zapytać czy jest jakaś prosta metoda która zamieni mi ',' na '.' w typie decimal? Próbuję to zrobić na różne sposoby i jak mi się udaje to tylko dla przypadku kiedy zamienię decimala na stringa i zwrócę strina albo znalazłem też sposób że daję decimala ale po zamianie dostaję stringa. Natomiast ja potrzebuję metody która na wejściu przyjmie typ decimal i odda mi również typ deciaml która zamiast ',' (comma) jako separator będzie miał '.' (dot).

0

Możesz zamienić przecinki na kropki:

parseFloat('12345678,90'.replace(',', '.'));
// 12345678.9

** Źle przeczytałem, ale funkcje zostawie, może się przyda**
W js jest typ float i separatorem jest . i nie da się tego zmienić. Możesz jedynie wpłynąć na reprezentacje twojej liczby w postaci tekstu, czyli:

/**
 * @param float   n: number
 * @param integer l: length of decimal
 * @param integer x: length of whole part
 * @param mixed   s: sections delimiter
 * @param mixed   c: decimal delimiter
 */
function numberFormat(n, l, x, s, c) {
    var re = '\\d(?=(\\d{' + (x || 3) + '})+' + (l > 0 ? '\\D' : '$') + ')',
        num = n.toFixed(Math.max(0, ~~l));

    return (c ? num.replace('.', c) : num).replace(new RegExp(re, 'g'), '$&' + (s || ','));
}

numberFormat(12345678.9, 2, 3, '.', ',');  // "12.345.678,90"
numberFormat(123456.789, 4, 4, ' ', ':');  // "12 3456:7890"
numberFormat(12345678.9, 0, 3, '-');       // "12-345-679"

1 użytkowników online, w tym zalogowanych: 0, gości: 1