JavaScript Math.trunc() Method: Getting the Integer Part of a Number
The Math.trunc() method in JavaScript is a built-in function that returns the integer part of a number by removing any fractional digits. It’s a straightforward way to get the integer portion without rounding, making it useful for various mathematical and programming tasks. This guide provides a deep dive into the Math.trunc() method, including its syntax, usage, and practical examples.
What is Math.trunc()?
The Math.trunc() method removes the fractional part (the digits following the decimal point) of a number, effectively truncating the number to its integer component. Unlike Math.floor() or Math.ceil(), Math.trunc() doesn’t round the number up or down; it simply cuts off the decimal part.
Syntax
The syntax for the Math.trunc() method is simple:
Math.trunc(x);
Here, x is the number you want to truncate.
Parameters
x: A number or an expression that evaluates to a number.
Return Value
The Math.trunc() method returns:
- The integer part of the given number.
NaNif the argument is not a number or cannot be converted to a number.+0if the argument is+0.-0if the argument is-0.
Basic Usage Examples
Let’s start with some basic examples to illustrate how Math.trunc() works.
Example 1: Truncating Positive Numbers
let positiveNumber = 42.84;
let truncatedPositive = Math.trunc(positiveNumber);
console.log(truncatedPositive); // Output: 42
In this example, Math.trunc() removes the fractional part .84 from 42.84, resulting in 42.
Example 2: Truncating Negative Numbers
let negativeNumber = -42.84;
let truncatedNegative = Math.trunc(negativeNumber);
console.log(truncatedNegative); // Output: -42
Here, Math.trunc() removes the fractional part .84 from -42.84, resulting in -42. Note that it doesn’t round towards zero; it simply truncates.
Example 3: Truncating Zero
let zeroNumber = 0.0;
let truncatedZero = Math.trunc(zeroNumber);
console.log(truncatedZero); // Output: 0
The Math.trunc() of 0.0 is 0.
Example 4: Truncating Non-Numeric Values
If the argument is not a number or cannot be converted to a number, Math.trunc() returns NaN.
let nonNumericValue = "hello";
let truncatedNonNumeric = Math.trunc(nonNumericValue);
console.log(truncatedNonNumeric); // Output: NaN
Advanced Usage and Practical Examples
Let’s explore more advanced scenarios where Math.trunc() can be useful.
Example 5: Handling Different Number Types
Math.trunc() works with various numeric types, including integers, floating-point numbers, and numbers represented as strings.
let integerValue = 123;
let floatStringValue = "45.67";
let truncatedInteger = Math.trunc(integerValue);
let truncatedFloatString = Math.trunc(floatStringValue);
console.log(truncatedInteger); // Output: 123
console.log(truncatedFloatString); // Output: 45
Example 6: Using Math.trunc() with Expressions
Math.trunc() can be used with mathematical expressions.
let expressionResult = 100 / 3; // Approximately 33.333...
let truncatedExpression = Math.trunc(expressionResult);
console.log(truncatedExpression); // Output: 33
Example 7: Math.trunc() in Financial Calculations
Math.trunc() can be useful in financial calculations where you need to ensure values are integers, such as counting whole units of currency.
function calculateWholeUnits(totalAmount, unitPrice) {
let numberOfUnits = totalAmount / unitPrice;
return Math.trunc(numberOfUnits);
}
let totalAmountAvailable = 100;
let pricePerUnit = 7.5;
let wholeUnits = calculateWholeUnits(totalAmountAvailable, pricePerUnit);
console.log(
`You can buy ${wholeUnits} whole units with ${totalAmountAvailable} available.`
); // Output: You can buy 13 whole units with 100 available.
Example 8: Using Math.trunc() with Canvas API
While Math.trunc() isn’t directly related to the Canvas API, you might use it when calculating coordinates or sizes that need to be integers.
<canvas id="canvasTrunc" width="200" height="100"></canvas>
<script>
const canvasTrunc = document.getElementById("canvasTrunc");
const ctxTrunc = canvasTrunc.getContext("2d");
function drawGrid(ctx, cellSize) {
for (let x = 0; x < ctx.canvas.width; x += cellSize) {
for (let y = 0; y < ctx.canvas.height; y += cellSize) {
ctx.strokeRect(Math.trunc(x), Math.trunc(y), cellSize, cellSize);
}
}
}
ctxTrunc.strokeStyle = "lightgrey";
drawGrid(ctxTrunc, 20.5); // Intentionally using a non-integer value
</script>
In this example, we use Math.trunc() to ensure that the grid lines are drawn at integer coordinates, which can help avoid anti-aliasing artifacts that might occur with non-integer coordinates.
Example 9: Using Math.trunc() in Data Processing
When processing data, you might need to truncate values to ensure they fit within a specific range or format.
function processData(value) {
let truncatedValue = Math.trunc(value);
if (truncatedValue > 100) {
return 100; // Limit to maximum value
}
return truncatedValue;
}
let dataValues = [50.5, 120.7, 75.3, 99.9];
let processedData = dataValues.map(processData);
console.log(processedData); // Output: [50, 100, 75, 99]
When to Use Math.trunc()
- Removing Decimal Parts: Use
Math.trunc()when you need to remove the fractional part of a number without rounding. - Financial Calculations: When dealing with whole units of currency or items.
- Data Processing: When ensuring values are integers or within a specific range.
- Avoiding Anti-Aliasing: In graphics and canvas applications, to ensure elements are drawn at integer coordinates.
Alternatives to Math.trunc()
Math.floor(): Rounds a number down to the nearest integer.Math.ceil(): Rounds a number up to the nearest integer.Math.round(): Rounds a number to the nearest integer.- Bitwise Operators (
| 0,~~): Can be used for truncating numbers, but be cautious as they work differently with negative numbers and large numbers.
Browser Support
The Math.trunc() method is supported by all modern browsers.
| Browser | Version |
|---|---|
| Chrome | Not Available |
| Edge | Not Available |
| Firefox | Not Available |
| Safari | Not Available |
| Opera | Not Available |
| IE | Not Available |
Conclusion
The Math.trunc() method is a simple yet powerful tool for obtaining the integer part of a number in JavaScript. Whether you’re performing financial calculations, processing data, or working with graphics, Math.trunc() provides a straightforward way to remove the decimal portion without rounding. Understanding its usage and practical applications can help you write cleaner and more efficient code. 🚀








