@@ -7,7 +7,7 @@ function formatNumber(number = 0, shortForm = true) {
7
7
if ( shortForm ) {
8
8
//if short form is true
9
9
const exponent = Math . floor ( Math . log10 ( Math . abs ( Math . max ( number , 1 ) ) ) ) ; //exponent component of number
10
- const exponent3 = Math . floor ( exponent / 3 ) * 3 ; //exponent with multiple of 3 for engineering notation
10
+ const exponent3 = Math . floor ( exponent / 3 ) * 3 ; //exponent with multiple of 3 integer numeric digits for engineering notation
11
11
const prefixes = [
12
12
'' ,
13
13
'K' ,
@@ -31,7 +31,7 @@ function formatNumber(number = 0, shortForm = true) {
31
31
'OD' ,
32
32
'ND' ,
33
33
'V' ,
34
- ] ; //numeric prefixes
34
+ ] ; //numeric prefixes for large numbers
35
35
if ( Math . abs ( number ) < 1000 ) {
36
36
//if number is less than 1 thousand
37
37
return Math . min (
@@ -40,17 +40,16 @@ function formatNumber(number = 0, shortForm = true) {
40
40
) . toString ( ) ; //return number rounded to nearest integer
41
41
} else {
42
42
//if number is 1 thousand or more
43
- const roundedNumber = number . toPrecision ( 3 ) ; //round number to 3 significant figures
43
+ const mantissa = parseFloat ( number ) / Math . pow ( 10 , exponent3 ) ; //get the mantissa value from 1 to 999
44
+ const roundedNumber = mantissa . toPrecision ( 3 ) ; //round number to 3 significant figures
44
45
return (
45
- Math . min (
46
- 999 ,
47
- parseFloat ( roundedNumber ) / Math . pow ( 10 , exponent3 ) ,
48
- ) . toPrecision ( 3 ) + prefixes [ exponent3 / 3 ]
46
+ Math . min ( 999 , Math . max ( - 999 , Number ( roundedNumber ) ) ) . toPrecision ( 3 ) +
47
+ prefixes [ exponent3 / 3 ]
49
48
) ; //return coefficient of engineering notation with numeric prefix
50
49
}
51
50
} else {
52
51
//if short form is false
53
- return Math . round ( number ) . toString ( ) ; //return number rounded to nearest integer
52
+ return Math . round ( number ) . toString ( ) ; //return the number rounded to nearest integer
54
53
}
55
54
}
56
55
const NumericDisplay = (
0 commit comments