Browse Source

show first decimal for views above a thousand (#3564)

* show first decimal for views above a thousand

* Update client/src/app/shared/shared-main/angular/number-formatter.pipe.ts
pull/3592/head
Rigel Kent GitHub 1 week ago
parent
commit
22078471fb
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 17 additions and 2 deletions
  1. +17
    -2
      client/src/app/shared/shared-main/angular/number-formatter.pipe.ts

+ 17
- 2
client/src/app/shared/shared-main/angular/number-formatter.pipe.ts View File

@@ -10,10 +10,25 @@ export class NumberFormatterPipe implements PipeTransform {
{ max: 1000000000, type: 'M' }
]

/**
* @param x number
* @param n number of decimals to get (defaults to 1, needs to be >= 1)
*/
static getDecimalForNumber (x: number, n = 1) {
const v = x.toString().split('.')
const f = v[1] || ''
if (f.length > n) return +f.substr(0, n)
return +f
}

transform (value: number) {
const format = this.dictionary.find(d => value < d.max) || this.dictionary[this.dictionary.length - 1]
const calc = Math.floor(value / (format.max / 1000))
const calc = value / (format.max / 1000)
const integralPart = Math.floor(calc)
const decimalPart = NumberFormatterPipe.getDecimalForNumber(calc)

return `${calc}${format.type}`
return integralPart < 10 && decimalPart > 0
? `${integralPart}.${decimalPart}${format.type}`
: `${integralPart}${format.type}`
}
}

Loading…
Cancel
Save