Numbers in JavaScript
Integers, Floating Points, and Number Literals
Integers and Floating Points
JavaScript numbers are floating-point by default, meaning they can store both integers and decimal numbers.
Example:
let intNumber = 42; // Integer
let floatNumber = 3.14; // Floating-point numberNumber Literals
JavaScript supports different number literals:
- Decimal (Base 10):
123 - Binary (Base 2):
0b1010(10 in decimal) - Octal (Base 8):
0o52(42 in decimal) - Hexadecimal (Base 16):
0x2A(42 in decimal)
Example:
console.log(0b1010); // 10
console.log(0o52); // 42
console.log(0x2A); // 42Arithmetic Operators
JavaScript provides basic arithmetic operators:
| Operator | Description | Example |
|---|---|---|
+ | Addition | 5 + 3 // 8 |
- | Subtraction | 10 - 4 // 6 |
* | Multiplication | 6 * 7 // 42 |
/ | Division | 20 / 5 // 4 |
% | Modulus (Remainder) | 10 % 3 // 1 |
** | Exponentiation | 2 ** 3 // 8 |
Example:
let a = 10;
let b = 3;
console.log(a + b); // 13
console.log(a - b); // 7
console.log(a * b); // 30
console.log(a / b); // 3.3333
console.log(a % b); // 1
console.log(a ** b); // 1000Exploring toFixed() and Math.round()
toFixed()
The toFixed(n) method formats a number to n decimal places, returning a string.
Example:
let num = 3.14159;
console.log(num.toFixed(2)); // "3.14"Math.round()
Rounds a number to the nearest integer.
Example:
console.log(Math.round(3.5)); // 4
console.log(Math.round(3.4)); // 3Mastering Math.floor(), Math.ceil(), and Math.random()
Math.floor()
Rounds down to the nearest integer.
console.log(Math.floor(3.9)); // 3Math.ceil()
Rounds up to the nearest integer.
console.log(Math.ceil(3.1)); // 4Math.random()
Generates a random number between 0 and 1.
console.log(Math.random()); // e.g., 0.7234Generating a random integer between min and max:
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(getRandomInt(1, 100)); // Random number between 1 and 100Understanding parseInt() and parseFloat()
parseInt()
Converts a string to an integer, ignoring decimals.
console.log(parseInt("42px")); // 42
console.log(parseInt("3.14")); // 3parseFloat()
Converts a string to a floating-point number.
console.log(parseFloat("3.14")); // 3.14Understanding Infinity, Number.MAX_VALUE, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER
Infinity and -Infinity
Represents numbers too large for JavaScript to handle.
console.log(1 / 0); // Infinity
console.log(-1 / 0); // -InfinityNumber.MAX_VALUE and Number.MIN_VALUE
Represents the largest and smallest possible numbers.
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
console.log(Number.MIN_VALUE); // 5e-324Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER
The largest and smallest safe integers in JavaScript.
console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991
console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991Number Formatting in JavaScript: Intl.NumberFormat and toLocaleString()
toLocaleString()
Formats numbers based on locale.
let num = 1234567.89;
console.log(num.toLocaleString("en-US")); // "1,234,567.89"
console.log(num.toLocaleString("de-DE")); // "1.234.567,89"Intl.NumberFormat
Provides advanced number formatting.
let formatter = new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" });
console.log(formatter.format(1234567.89)); // "$1,234,567.89"Understanding NaN (Not a Number)
NaN represents an invalid number.
console.log(0 / 0); // NaN
console.log(parseInt("abc")); // NaN
console.log(Math.sqrt(-1)); // NaNTo check for NaN, use:
console.log(isNaN("hello")); // true
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN("hello")); // false (better check)Conclusion
JavaScript provides powerful number handling features, including various arithmetic operations, rounding methods, parsing functions, and formatting options. Mastering these will help you handle numbers efficiently in your applications.