Angular2 Currency Pipe change decimal separator
Your problem has probably been solved some time ago, but just for reference for other Dutch developers (like myself):
Create a custom Pipe:
import {Pipe} from '@angular/core';
@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 currencySign+(decimalDelimiter ? num.replace('.', decimalDelimiter) : num).replace(new RegExp(result, 'g'), '$&' + chunkDelimiter);
}
}
Now you can use:
{{someIntegerWithCentsToBeDivided | currencyFormat}}
The Pipe has already all the Dutch defaults included, but you can easily change them or use them as arguments in the template. For example:
{{1234567 | currencyFormat:'$':2:' ':'.':3}}
will give $12 345.67
as output.
you need import that
import { registerLocaleData } from '@angular/common';
import localeIt from '@angular/common/locales/it'
registerLocaleData(localeIt, 'it');
and add that pipe in view
{{ 1000 | currency: 'EUR':'symbol':'.2-2':'it' }}