decimal-display-02
by Nic Fontaine
TypeScript
const f = (x:_number): string => {
// Whole number
if (Math.round(x) === x) {
return x.toString();
}
// Insignificant 000 decimals
if (Number(x.toString().split('.')[1]) === 0) {
return Math.round(x).toString();
}
const maxDigits = 3;
// Don't force extra zeros
if (x.toString().split('.')[1].length <= maxDigits) {
return x.toString();
}
return `${x.toFixed(maxDigits)}...`;
};
console.log(f(-0.000000000000001654689807));
console.log(f(0.000000000000016546896889));
console.log(f(0.0001));
console.log(f(0.000365468));
console.log(f(0.00365468));
console.log(f(0.0365468));
console.log(f(0.365468));
console.log(f(12.345757));
console.log(f(312.345757));
console.log(f(312.000000345757));
console.log(f(312.000000));
console.log(f(313.0));
console.log(f(312.10));
console.log(f(-312.1));
console.log(f(-312.123));
console.log(f(500));
console.log(f(500000));