metadata
title: Number.prototype.toPrecision()
short-title: toPrecision()
slug: Web/JavaScript/Reference/Global_Objects/Number/toPrecision
page-type: javascript-instance-method
browser-compat: javascript.builtins.Number.toPrecision
sidebar: jsref
The toPrecision() method of {{jsxref("Number")}} values returns a string representing this number to the specified number of significant digits.
{{InteractiveExample("JavaScript Demo: Number.prototype.toPrecision()")}}
function precise(x) {
return x.toPrecision(4);
}
console.log(precise(123.456));
// Expected output: "123.5"
console.log(precise(0.004));
// Expected output: "0.004000"
console.log(precise(1.23e5));
// Expected output: "1.230e+5"
Syntax
toPrecision()
toPrecision(precision)
Parameters
precision{{optional_inline}}- : An integer specifying the number of significant digits.
Return value
A string representing the given number, using the given number of significant digits. Scientific notation is used if the exponent is greater than or equal to precision or less than -6. Has the same behavior as {{jsxref("Number.prototype.toString()")}} if the precision argument is omitted.
Exceptions
- {{jsxref("RangeError")}}
- : Thrown if
precisionis not between1and100(inclusive).
- : Thrown if
- {{jsxref("TypeError")}}
- : Thrown if this method is invoked on an object that is not a {{jsxref("Number")}}.
Examples
Using toPrecision
// This number has exponent 0, so it will never use exponential notation
let num = 5.123456;
console.log(num.toPrecision()); // '5.123456'
console.log(num.toPrecision(5)); // '5.1235'
console.log(num.toPrecision(2)); // '5.1'
console.log(num.toPrecision(1)); // '5'
// This number has exponent -4, so it will never use exponential notation
num = 0.000123;
console.log(num.toPrecision()); // '0.000123'
console.log(num.toPrecision(5)); // '0.00012300'
console.log(num.toPrecision(2)); // '0.00012'
console.log(num.toPrecision(1)); // '0.0001'
// This number has exponent 3, so it will use exponential notation if precision is less than 4
num = 1234.5;
console.log(num.toPrecision(1)); // '1e+3'
console.log(num.toPrecision(2)); // '1.2e+3'
console.log(num.toPrecision(6)); // '1234.50'
// This number has exponent -7, so it will always use exponential notation
num = 0.00000012345;
console.log(num.toPrecision(1)); // '1e-7'
console.log(num.toPrecision(10)); // '1.234500000e-7'
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
- {{jsxref("Number.prototype.toFixed()")}}
- {{jsxref("Number.prototype.toExponential()")}}
- {{jsxref("Number.prototype.toString()")}}