snippetjavascriptMinor
Number format in JavaScript
Viewed 0 times
javascriptformatnumber
Problem
What's the best way to format a number?
-
If
I don't want rounding to happen
Help me improve on this.
- If decimal is less than
2digits, add zero to make it2decimals
- If more than
4, truncate to4decimals
-
If
3 decimals, keep it to 3 decimals14 => 14.00
14.1 => 14.10
14.123 => 14.123
14.12347 => 14.1234I don't want rounding to happen
if (number !== 0) {
nParts = number.toString().split('.');
if (nParts[1]) {
if (nParts[1].length > 4) {
nParts = 4;
} else if (nParts[1].length < 3) {
nParts = 2;
} else {
nParts = 3;
}
} else {
nParts = 2;
}
}
number = number.toFixed(nParts);Help me improve on this.
Solution
since you don't want rounding, treat as string rather than number...
function strange(number){
var n=0;
if (number !== 0) {
nParts = number.toString().split(/\.|,/);
if (nParts[1]){
n=nParts[1].length;
n = n 14.00
14.1 => 14.10
14.123 => 14.123
14.12347 => 14.1234
*/Code Snippets
function strange(number){
var n=0;
if (number !== 0) {
nParts = number.toString().split(/\.|,/);
if (nParts[1]){
n=nParts[1].length;
n = n <=2 ? 2 : n==3 ? 3 : 4;
nParts[1] = nParts[1] + '0'
}else{
n=2;
nParts[1]='00';
}
}
return nParts[0] + '.' + nParts[1].slice(0,n);
}
;strange(14);
;strange(14.1);
;strange(14.123);
;strange(14.12347);
/*
14 => 14.00
14.1 => 14.10
14.123 => 14.123
14.12347 => 14.1234
*/Context
StackExchange Code Review Q#40097, answer score: 2
Revisions (0)
No revisions yet.