[CurrencyFormatter(CultureName = "en-US", CurrencyName = "USD")] code example

Example: [CurrencyFormatter(CultureName = "en-US", CurrencyName = "USD")]

namespace YourProjectNameHere {

    @Serenity.Decorators.registerFormatter()
    export class CurrencyFormatter implements Slick.Formatter {

        @Serenity.Decorators.option()
        public cultureName: string;
        @Serenity.Decorators.option()
        public currencyName: string;

        format(ctx: Slick.FormatterContext) {

            //If the input is not a float - just bounce it back
            if (isNaN(parseFloat(ctx.value))) {
                return ctx.value;
            }

            //Use standard currency formatting; This can be modified for other styles (% etc).
           //If no parameters passed then fallback to en-US , USD formatting.
            this.cultureName = this.cultureName ? this.cultureName : 'en-US';
            this.currencyName = this.currencyName ? this.currencyName : 'USD';

            var formatter = new Intl.NumberFormat(this.cultureName, {
                style: 'currency',
                currency: this.currencyName,
                minimumFractionDigits: 2,
            });

            //use the above formatter to return the reformatted value
            var percentValue = formatter.format(Number(ctx.value));
            return "<span>" + percentValue + '</span>';
        }



    }
}

Tags:

Misc Example