在相同语言环境下,iOS和Android上的货币格式不同

时间:2019-01-08 07:36:00

标签: javascript android react-native locale currency-formatting

我正在使用React Native开发一个应用程序,我需要同时显示欧元和卢比的货币。

我正在使用Javascript的Intl按照语言环境设置货币格式,使用en-IN表示卢比,使用en-GB表示欧元。

,但是货币在iOS和Android上以不同的格式显示,在iOS中,IN可以正确显示IN,例如3,74,73,474,但在Android上以以下格式显示37,473,474。不知道我该如何处理。以下是我编写的用于格式化的实用程序功能:

getformattedCurrency(value) {
   const formatter = new Intl.NumberFormat('en-IN', {
      style: 'currency',
      currency: 'INR'
      minimumFractionDigits: 0,
      maximumFractionDigits: 0,
   });
   return formatter.format(value);
}

我知道android的本机可以使用DecimalFormat来执行此操作,但是我只想通过JS来实现。

感谢您的帮助!谢谢。

1 个答案:

答案 0 :(得分:1)

由于某种原因,它似乎无法从Intl库中选择要使用的脚本。 所以

import 'intl';
import 'intl/locale-data/jsonp/en-IN';
import 'intl/locale-data/jsonp/en';

当您分别导入en-IN时,它可以在android上运行。无法在iPhone上进行测试。