问题描述
我的应用程序接受其他语言。我有用户首选的德语,并已使用registerLocale注册。我能够将数据库的十进制值-0.001(en-fromat)转换为0,001(de format)
但是现在,当用户以其区域格式输入任何数字/小数时,我需要将其从0,001(de格式)更改为0.001(en格式),以便将正确的数据存储在数据库中。
我尝试关注-
console.log(this.value.toLocaleString('de-DE')); -- doesnt work
console.log(new Intl.NumberFormat('de-DE').format(this.value)); --give NaN
new Intl.NumberFormat(locale,{minimumFractionDigits: 5}).format(Number(value)); - gives NaN
console.log('formatNumber-' + this.LocalNumberPipe.transform(value)); -- give NaN
我不了解如何解决此问题。有什么通用的方法。我正在寻找一种方法来帮助我将任何语言环境转换为EN-US,因为德语语言环境就是这样的例子。
我的localNumberPipe是
@Pipe({
name: 'localNumber',})
export class LocalNumberPipe implements PipeTransform {
constructor(private session: SessionService) { }
transform(value: any,format?: string) {
if (value == null) { return ''; } // !value would also react to zeros.
if (!format) { format = '.2-2'; }
return formatNumber(value,this.session.locale,format);
}
}
请,有人对我该如何解决有任何想法。
解决方法
您可以简单地将更改为。然后将其解析为Float:
this.value.replace(",","."); // to reaplace ',' with '.'
let result = parseFloat(this.value);