I have written a custom pipe in angular 4. Basically what i am looking at is if the number is in 12.23 millions then it should display For e.g 12.2M (One decimal place). If the number is 50,000.123 then 50.1K. Please note that it should also do the same for negative numbers and consider decimals.
import { Component, OnInit, Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'numberFormat'
})
export class NumberformatComponent implements PipeTransform {
constructor() { }
transform(number : any){
if(number == 0) {
return 0;
}
else
{
// hundreds
if(number <= 999){
return number ;
}
// thousands
else if(number >= 1000 && number <= 999999){
return (number / 1000) + 'K';
}
// millions
else if(number >= 1000000 && number <= 999999999){
return (number / 1000000) + 'M';
}
// billions
else if(number >= 1000000000 && number <= 999999999999){
return (number / 1000000000) + 'B';
}
else
return number ;
}
}
}