llround() Function

The llround() function rounds a floating-point number to the nearest integer value, with halfway cases rounded away from zero. It returns the result as a long long integer, making it useful for converting floating-point values to integer values while ensuring proper rounding behavior.


Syntax of llround()

</>
Copy
long long int llround(double x);
long long int llroundf(float x);
long long int llroundl(long double x);

Parameters

ParameterDescription
xThe floating-point value to round.

Return Value

The function returns the value rounded to the nearest integral value, cast to a type long long int. If the rounded value falls outside the range representable by the return type, an error may occur, with behavior dependent on the implementation.

Additional details: The function rounds halfway cases away from zero. If a domain error occurs (for example, when the value cannot be rounded properly), and if math_errhandling is set accordingly, errno will be set to EDOM or the appropriate floating-point exception will be raised. Similarly, for an overflow range error, errno may be set to ERANGE or the FE_OVERFLOW exception raised.


Examples for llround()

Example 1: Rounding a Positive Floating-Point Value

This example demonstrates how a positive floating-point value is rounded to its nearest integer value.

Program

</>
Copy
#include <stdio.h>
#include <math.h>

int main() {
    double value = 3.6;
    long long int result = llround(value);
    
    printf("Rounded value: %lld\n", result);
    return 0;
}

Explanation:

  1. A double variable is initialized with the value 3.6.
  2. The llround() function rounds the value to the nearest integer, resulting in 4.
  3. The rounded value is stored and then printed.

Program Output:

Rounded value: 4

Example 2: Rounding a Negative Floating-Point Value with a Halfway Case

This example shows how the function handles a negative value, specifically when the number is exactly halfway between two integers, ensuring that it rounds away from zero.

Program

</>
Copy
#include <stdio.h>
#include <math.h>

int main() {
    double value = -2.5;
    long long int result = llround(value);
    
    printf("Rounded value: %lld\n", result);
    return 0;
}

Explanation:

  1. A double variable is set to -2.5.
  2. The llround() function rounds -2.5 away from zero, resulting in -3.
  3. The result is stored and printed.

Program Output:

Rounded value: -3

Example 3: Rounding a Value Near a Halfway Boundary

This example illustrates the behavior of llround() when the floating-point value is just below the halfway point between two integers.

Program

</>
Copy
#include <stdio.h>
#include <math.h>

int main() {
    double value = 2.4999;
    long long int result = llround(value);
    
    printf("Rounded value: %lld\n", result);
    return 0;
}

Explanation:

  1. A double variable is initialized with 2.4999.
  2. The llround() function rounds the value to the nearest integer, resulting in 2 since it is just below the halfway mark.
  3. The rounded value is then stored and printed.

Program Output:

Rounded value: 2