如何更改angular7项目的十进制格式?我已经进行了研究,但是我只是在寻找适用于小范围的解决方案,并且可以确定有一种方法可以更改区域设置(我认为与之相关)以采用区域格式并将其设置为整个项目的默认设置。
为了更加简洁,我需要将逗号换成逗号,其中小数点在逗号后: 18,245.23€-> 18.245,23€
打印者:<span>{{totalPricing | number:'1.0-2'}}€<span>
有人知道吗?
答案 0 :(得分:3)
我建议您不要使用自定义的Date
和Currency
类型的变量格式
您应该定义LOCALE_ID
,这意味着您无需为Date
或Currency
(或货币,时间等)变量使用自定义格式。将此添加到您的顶级根模块。ts,
import { registerLocaleData } from '@angular/common';
import localeEs from '@angular/common/locales/es';
registerLocaleData(localeEs, 'es');
import { LOCALE_ID } from '@angular/core';
@NgModule({
imports: [
...
],
...
providers: [{ provide: LOCALE_ID, useValue: 'es' }]
})
来源:https://angular.io/api/core/LOCALE_ID#description
更新: Here是有效的stackblitz示例。
答案 1 :(得分:0)
您可以创建pipe
来格式化货币
@Pipe({
name: 'currencyFormat'
})
export class CurrencyFormat {
transform(value: number,
currencySign: string = '€ ',
decimalLength: number = 2,
chunkDelimiter: string = '.',
decimalDelimiter:string = ',',
chunkLength: number = 3): string {
value /= 100;
let result = '\\d(?=(\\d{' + chunkLength + '})+' + (decimalLength > 0 ? '\\D' : '$') + ')';
let num = value.toFixed(Math.max(0, ~~decimalLength));
return (decimalDelimiter ? num.replace('.', decimalDelimiter) : num).replace(new RegExp(result, 'g'), '$&' + chunkDelimiter) + currencySign;
}
}