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));