Как изменить десятичный символ (.) на (,)

#reactjs #axios

Вопрос:

Я хочу изменить десятичную дробь в своем сервисе или клиенте с помощью универсального решения. Я использую .Net WebAPI на моей стороне обслуживания. И я использую React.JS с axios на стороне моего клиента. У меня есть некоторые значения о деньгах в моих данных, и все они идут с (.), если это десятичное число. Например, totalDebtAmount = 54,69$, тогда я хочу показать 54,69$. И, например,если значение намного больше 1000, мое значение должно быть видно, например, 12,456, 98$. Есть ли какой-нибудь способ без string.replace (), потому что у меня так много страниц, и я не хочу использовать «метод замены» для всех моих значений раз за разом. Могу ли я изменить для него настройки visual studio или библиотеки axios? Вы можете увидеть мои примеры кодов и изображений ниже.

 export const GetDebtList = (SUBSCRIBER_OID_LIST,SUBSCRIBER_INFO_OID,PAYMENT_DATE, 
 SuccessOperation, FailedOperation) => {
 return () => {
 const body = { subscriberOidList: SUBSCRIBER_OID_LIST, subscriberInfoOid:SUBSCRIBER_INFO_OID, 
 paymentDate:PAYMENT_DATE };
 axios.post('/api/GetDebtList', body)
  .then(response => {
    SuccessOperation({ DEBT_LIST: response.data });
  })
  .catch(() => {
    FailedOperation({ DEBT_LIST: null })
  });
}}
 

Здесь мои данные и панель управления

Данные, поступившие от службы

Моя базовая Панель Сетки В Проекте

Ответ №1:

Вы должны различать визуальную привлекательность числа и само значение. Значение всегда должно быть отформатировано в виде числа с плавающей запятой (с использованием . ) То, как вы отображаете свою валюту, зависит от местоположения пользователей. Я бы рекомендовал использовать Intl.NumberFormat API (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat) или используйте библиотеку форматирования валюты, например Dinero.js (https://github.com/dinerojs/dinero.js) Конечно, вы уже можете выполнить форматирование на стороне сервера, но я бы рекомендовал сделать это на клиенте.

 const value = 54.69;

return (
  <>
   {new Intl.NumberFormat('en', { style: 'currency', currency: 'USD' }).format(value)}
  </>
)
 

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

1. На самом деле ваше решение-это совсем не то, что я ищу . Но я решил свою проблему другим способом, используя ваше решение. Вот почему я приму ваш ответ и благодарю вас за помощь мне.