我的一位客户希望本机移动应用程序能够处理德语格式的数字。在德语格式中,他们使用逗号符号代替小数点来输入或表示十进制数字。我找不到任何直接的方法来在 React Native 中使用这种格式。
我已经完成了标准数字的工作,并实现了格式转换,以将数字中的逗号替换为小数点,同时将它们保存在数据库中以及执行计算时。然后,我通过用逗号替换小数点,将十进制数字转换回德语格式,以便在应用程序中显示数字。我想知道是否有任何直接的方法可以处理德国格式或澳大利亚格式的数字。您的回复将受到高度重视。
Intl.NumberFormat
: JavaScript 的内置 Intl.NumberFormat
可以根据您指定的区域设置格式化数字。例如:
const number = 1234567.89;
const formattedNumber = new Intl.NumberFormat('de-DE').format(number);
console.log(formattedNumber); // Output: "1.234.567,89"
react-intl
或 i18n-js
这样的库可以帮助实现国际化,包括数字格式化。numeral.js
: 该库允许自定义格式并可以处理不同的区域设置。
const numeral = require('numeral');
numeral.locale('de');
const formattedNumber = numeral(1234567.89).format('0,0.00');
console.log(formattedNumber);
react-native-localize
: 该库有助于区域设置检测,并且可以与 Intl.NumberFormat
或 numeral.js
结合使用以实现区域设置特定的格式。如果您想要更多控制,可以编写自定义函数来处理格式化和解析:
const toGermanFormat = (number) => number.toString().replace('.', ',');
const fromGermanFormat = (string) => parseFloat(string.replace(',', '.'));