Rounding Towards Zero: Unlocking the Power of the trunc() Function in C++
Understanding the trunc() Function Prototype
The trunc()
function, introduced in the C++ 11 standard, takes a single argument and returns a value of type double
, float
, or long double
. This function is defined in the <cmath>
header file, making it easily accessible for your programming needs.
The trunc() Function in Action
When you pass a value to the trunc()
function, it truncates the value after the decimal point and returns the integer part only. Let’s take a look at an example to illustrate this:
#include <cmath>
#include <iostream>
int main() {
double originalValue = 3.7;
double truncatedValue = trunc(originalValue);
std::cout << "Original value: " << originalValue << std::endl;
std::cout << "Truncated value: " << truncatedValue << std::endl;
return 0;
}
As you can see, the trunc()
function effectively rounds the value towards zero, discarding the decimal portion.
Working with Integral Types
But what about integral values? Does the trunc()
function have any effect on them? Let’s find out:
#include <cmath>
#include <iostream>
int main() {
int originalValue = 5;
double truncatedValue = trunc(originalValue);
std::cout << "Original value: " << originalValue << std::endl;
std::cout << "Truncated value: " << truncatedValue << std::endl;
return 0;
}
As expected, applying the trunc()
function to integral values returns the same value as a result. This is because integral values already have no decimal portion, making the trunc()
function redundant in this case.
Exploring Related Functions
While the trunc()
function is useful for rounding towards zero, there are other functions that can help you achieve different rounding behaviors. For instance, the round()
function rounds to the nearest integer, rather than towards zero. To learn more about the round()
function and its applications, check out our article on C++ round().
- Rounding towards zero:
trunc()
function - Rounding to the nearest integer:
round()
function
By mastering the trunc()
function and its capabilities, you’ll be better equipped to tackle complex numerical tasks in C++ with confidence.