JavaScript Data Types: Number

The Number data type is used to represent numeric values,  e.g. integer, floating-point, and exponential numbers, and is essential for mathematical calculations and storing values.

Integer Numbers

Integer numbers are whole numbers without any decimal points and can be positive, negative, or zero. The range of integer numbers in JavaScript is between -9007199254740991 and 9007199254740991.

let x = 10   // positive integer
let y = -20  // negative integer
let z = 0    // zero

Standard operations are straightforward:

let sum = 10 + 5       // 15
let multiply = 10 * 5  // 50
let divide = 10 / 5    // 2
let subtract = 10 - 5  // 5

Floating-Point (decimal) Numbers

The range of floating-point numbers in JavaScript is between -1.7976931348623157 x 10^308 and 1.7976931348623157 x 10^308.  Due to the way that floating-point numbers are represented in memory, they can sometimes lead to precision errors, which can be problematic in some calculations.

let x = 3.14  // positive floating-point number
let y = -0.5  // negative floating-point number
let z = 0.0   // floating-point zero

Operations work just as expected (or, do they?!):

let sum = 0.1 + 0.2  // 0.30000000000000004

In the above example, the value of sum is not precisely 0.3, but it is 0.30000000000000004. When working with financial data or other types of applications that require high precision, the toFixed() method can be used to round the value to a specified number of decimal places.

let pi = 3.14159;
console.log(pi.toFixed(2)); // 3.14

The Floating-Point data type is useful in scientific calculations and calculations that require high precision.

Exponential Numbers

Exponential numbers are written using the letter "e" and are used to represent very large or very small numbers - the letter "e" represents "10 raised to the power of" the number that follows:

let x = 5e3   // 5000  (5 times 10 raised to the power of 3)
let y = 5e-3  // 0.005 (5 times 10 raised to the power of -3)

Here are some exponential numbers used to represent very large or very small numbers (ideal for scientific calculations):

let distanceToSun = 149.6e6  // distance to the sun in kilometers
let hairWidth = 0.003e-3     // width of a human hair in meters

Type Checks and Conversion

JavaScript also provides some built-in methods for working with numbers, such as isNaN(), which is used to check if a value is not a number, and parseInt(), which parses a string and returns an integer.

let notANum = "hello";
console.log(isNaN(notANum)); // true

let stringNum = "10";
let num = parseInt(stringNum);
console.log(num); // 10

Take Away

Number is a versatile data type and allows for the representation of a wide range of numeric values. Whether you need to represent integers, floating-point numbers, or exponential numbers, JavaScript provides the necessary tools to work with them effectively. Understanding the different data types and their respective use cases is essential for writing efficient and effective code.