JavaScript: Format Number

By Xah Lee. Date: . Last updated: .

JavaScript does not have a β€œformat” or β€œprintf” function. The following code are solutions.

Show Only N Decimal Places

Use toFixed.

[see Number.prototype.toFixed]

Show Only N Significant Digits

Use toPrecision, but result may be in exponential notation.

[see Number.prototype.toPrecision]

Show in Exponential Notation

Use toExponential

Example output: "3.12e+2"

[see Number.prototype.toExponential]

Format Number with Metric Prefix

const xah_format_number = ((n, m = 1) => {
/* [
format number with metric prefix, example: 1.2 k
n is integer. The number to be converted
m is integer. The number of decimal places to show. Default to 1.
returns a string, with possibly one of k M G T ... suffix.

http://xahlee.info/js/javascript_format_number.html
version 2019-04-15
 ] */
    const prefix = ["", " k", " M", " G", " T", " P", " E", " Z", " Y", " * 10^27", " * 10^30", " * 10^33"]; // should be enough. Number.MAX_VALUE is about 10^308
    let ii = 0;
    while ((n = n/1000) >= 1) { ii++; }
    return (n * 1000).toFixed(m) + prefix[ii];
});

// --------------------------------------------------
// test

console.log(
 xah_format_number(111, 1) === "111.0"
&&
 xah_format_number(111222, 1) === "111.2 k"
&&
 xah_format_number(111222333, 1) === "111.2 M"
&&
 xah_format_number(111222333444, 1) === "111.2 G"
&&
 xah_format_number(111222333444) === "111.2 G"
&&
 xah_format_number(111222333444, 3) === "111.222 G"
&&
 xah_format_number(111222333444, 0) === "111 G"
); // true

JavaScript Number

βˆ‘ JS in Depth
XAH Β BUY NOW

JS in Depth

JS Obj Ref

DOM


JS in Depth

Basic Syntax

Value Types

Variable

String

Function

Property

Object and Inheritance

Array

Constructor/Class

Iterable 🌟

Misc