将德语语言环境数字格式0,01转换为英语语言环境格式0.01角度8

问题描述

我的应用程序接受其他语言。我有用户首选的德语,并已使用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);