React-native 将数字设置为按语言环境设置的字符串

React-native set number to string by locale

我有一个数字,如果我使用 amount.toFixed() 我会得到这个字符串“100.00”。我希望结果与语言环境一致。

如果语言环境是意大利语,则结果为 100,00, 如果区域设置为英语,则结果为 100.00

我能用什么?

amount.toFixed(2)

我用的是react-native

Javascript 有一个 built-in 函数,Intl.NumberFormat:

const updateNr = (val: any) => {
var formatter = new Intl.NumberFormat("it-IT");         
updateValue(formatter.format(val.replace(/,/g, "")));   //Remove ',' to format number again
};

或者,如果您使用的是 React,则可以使用 react-number-format plugin

你应该直接使用 javascript built-in 方法 国际号码格式。有很多有用的属性。

要格式化您的号码,您可以使用属性 maximumSignificantDigitsminimumSignificantDigitsmaximumFractionDigitsminimumFractionDigitsminimumIntegerDigits

这是一个有效的 fiddle:

var number = "123456.78"; // string 

console.log(new Intl.NumberFormat('de-DE', { style: 'decimal'}).format(number));

console.log(new Intl.NumberFormat('en-US', { style: 'decimal', maximumSignificantDigits:7 }).format(number));