如何使用react-intl中的FormattedNumber函数基于选定的语言环境来表示百万亿中的数字?

时间:2019-05-21 13:43:58

标签: javascript reactjs internationalization number-formatting react-intl

我正在致力于我的申请的国际化。我需要根据所选语言(即语言环境)来格式化大数。使用react-intl根据语言环境将数字转换成数百万亿。

我尝试将数字转换为百万和十亿,然后在react-intl中调用formattednumber函数,由于B(Billion)或M(Million)被追加,因此以NaN返回。

将数字转换成十亿和百万的代码

numberToHumanReadableFormatConverter = number => {    
const num =
  Math.abs(Number(number)) >= 1.0e9
    ? (Math.abs(Number(number)) / 1.0e9).toFixed(2) + 'B'
    : Math.abs(Number(number)) >= 1.0e6
      ? (Math.abs(Number(number)) / 1.0e6).toFixed(2) + 'M'
      : Math.abs(Number(number)) >= 1.0e3
        ? // ? Math.abs(Number(number)) / 1.0e3 + 'K'
        Math.abs(Number(number)).toFixed(2)
        : Math.abs(Number(number)).toFixed(2);

if (num == 0) {
  return '0';
}
return num % 1 != 0 ? num : num / 1;
};

使用react-intl代码对数字格式进行国际化

 { this.numberToHumanReadableFormatConverter(<FormattedNumber value="111111111111111111111111111111111111"/>
                        )} 

根据所选的区域设置,数字格式应更改为“十亿”。

示例1:如果选择“ en” 输入:253050390812642 预期输出:253,050.39B

示例1:如果选择“ de” 输入:253050390812642 预期输出:253.050,39B

0 个答案:

没有答案