Javascript 使用Intl.NumberFormat和react数字格式库格式化输入值
我正在尝试设置一个完全本地化的输入字段,并相应地格式化数值 到目前为止,我的格式设置如下:Javascript 使用Intl.NumberFormat和react数字格式库格式化输入值,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我正在尝试设置一个完全本地化的输入字段,并相应地格式化数值 到目前为止,我的格式设置如下: function format(val: string) { const formatConfig = { minimumFractionDigits: 0, maximumFractionDigits: 6, }; if (val[val.length - 1] === ".") { return new Intl.Num
function format(val: string) {
const formatConfig = {
minimumFractionDigits: 0,
maximumFractionDigits: 6,
};
if (val[val.length - 1] === ".") {
return new Intl.NumberFormat(intl.locale, formatConfig).format(parseFloat(`${val}1`)).slice(0, -1);
} else {
return intl.formatNumber(parseFloat(val));
}
}
function removeFormatting(val: string) {
const reversed = reverseNumberFormat(val, intl.locale).toString();
if (val[val.length - 1] === ".") {
return `${reversed}.`;
} else {
return reversed;
}
}
因为我使用的是react数字格式库,所以我在这样的代码中使用它
返回代码>
我这里有两个问题
我不能输入超过3个小数点
要点。如果我尝试输入第四个数字,他会开始将小数点四舍五入
上升一点
例如:
我输入123521.251,函数将其格式化为123522.251
如果我按下键盘上的键“5”(或大于5的任何数字),他会将其转换为123522.252
我试着用最小/最大分数数字玩这个游戏,但对我不起作用
当我要格式化货币输入,并添加
将以下参数添加到我的格式变量:
如果我输入“12452”,它的格式将是12452-这是正确的,但美元符号直到我按“.”-小数点后才会出现。在那一刻之后,如果我试图按下键盘上的任何数字,输入值将变为“NaN”
我正在使用React+Typescript进行此操作
style: "currency",
currency: "USD"