В React, как форматировать число с запятыми?

Мой API отправляет целые числа React, например, 10, 31312, 4000.

Как правильно отформатировать эти числа в моем компоненте React:

from: 10, 31312, 4000
to: 10, 31,312, 4,000

Обновление

Этот номер предоставляется моим Rails API и отображается в компоненте React:

const RankingsList = ({rankings, currentUserId}) => {
  return (
      <div className="listGroup">
        {rankings.map((ranking, index) =>
            <span className="number">{ranking.points}</span>
        )}
      </div>
  );
};

Ответ 1

У меня есть класс, который преобразует число в 31,312 или 31,312.00.

Код в значительной степени;

return value.toLocaleString(navigator.language, { minimumFractionDigits: 2 });

а также

return value.toLocaleString(navigator.language, { minimumFractionDigits: 0 });

Таким образом, вы можете просто использовать toLocaleString для преобразования.

Обновить

Исходя из вашего примера, это будет (предполагая, что число - это число);

const RankingsList = ({rankings, currentUserId}) => {
  return (
      <div className="listGroup">
        {rankings.map((ranking, index) =>
            <span className="number">{ranking.points.toLocaleString(navigator.language, { minimumFractionDigits: 0 })}</span>
        )}
      </div>
  );
};

Однако вы можете просто переместить это в меньший компонент, называемый NumberDisplay и свойство показать/скрыть десятичные точки '

Ответ 2

Выведите число с запятыми в качестве разделителей тысяч в JavaScript

Вы можете найти общее решение JS для этого:


toLocaleString:

// A more complex example: 
number.toLocaleString(); // "1,234,567,890"

// A more complex example: 
var number2 = 1234.56789; // floating point example
number2.toLocaleString(undefined, {maximumFractionDigits:2}) // "1,234.57"

NumberFormat (Safari не поддерживается):

var nf = new Intl.NumberFormat();
nf.format(number); // "1,234,567,890"

источник: fooobar.com/info/11130/...


var номер = 1234567890;//Пример номера для конвертации

Ind Имейте в виду, что максимальное целочисленное значение javascript составляет 9007199254740991


Другое решение:

https://css-tricks.com/snippets/javascript/comma-values-in-numbers/

2345643.00 will return 2,345,643.00