lrint() y llrint() en C++

La función lrint() redondea el valor fraccionario dado en el argumento a un valor integral utilizando el modo de redondeo actual. Aquí, el modo actual está determinado por la función fesetround(). Nota: esta función devuelve el valor final en long int . Sintaxis:

lrint(double a);
lrint(float a);

Parámetro:

  • La función lrint() toma valores dobles, flotantes o enteros como argumento.

Devolver:

  • La función lrint() redondea el valor fraccionario dado en el argumento a un valor integral utilizando el modo de redondeo actual y el valor devuelto en un int largo. Aquí, el modo actual está determinado por la función fesetround(). De forma predeterminada, la dirección de redondeo se establece en ‘al más cercano’. Se puede cambiar usando fesetround().

Error:

  • Es obligatorio dar un argumento, de lo contrario, dará un error sin función coincidente para llamar a ‘lrint()’ como este.

# CÓDIGO 1 

CPP

// CPP code to illustrate
// the functionality of lrint()
#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;
 
int main()
{
    int a = 15;
    long int answer;
 
    // setting rounding direction to DOWNWARD
    fesetround(FE_DOWNWARD);
    answer = lrint(a);
    cout << "Downward rounding of " << a
         << " is " << answer << endl;
 
    return 0;
}

PRODUCCIÓN :

Downward rounding of 15 is 15

# CÓDIGO 2 

CPP

// CPP code to illustrate
// the functionality of lrint()
#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;
 
int main()
{
    double a;
    long int answer;
 
    // By default, the rounding direction
    // is set to 'to-nearest'.
    // fesetround(FE_TONEAREST)
    a = 50.35;
    answer = lrint(a);
    cout << "Nearest rounding of " << a
         << " is " << answer << endl;
 
    // mid values are rounded off to higher integer
    a = 50.5;
    answer = lrint(a);
    cout << "Nearest rounding of " << a
         << " is " << answer << endl;
 
    return 0;
}

PRODUCCIÓN :

Nearest rounding of 50.35 is 50
Nearest rounding of 50.5 is 50

# CÓDIGO 3 

CPP

// CPP code to illustrate
// the functionality of lrint()
#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;
 
int main()
{
    double a;
    long int answer;
 
    // Now, the rounding direction
    // is set to UPWARD
    fesetround(FE_UPWARD);
    a = 50.3;
    answer = lrint(a);
    cout << "Upward rounding of " << a
         << " is " << answer << endl;
 
    // Now, the rounding direction
    //  is set to DOWNWARD
    fesetround(FE_DOWNWARD);
    a = 50.88;
    answer = lrint(a);
    cout << "Downward rounding of " << a
         << " is " << answer << endl;
 
    return 0;
}

PRODUCCIÓN :

Upward rounding of 50.3 is 51
Downward rounding of 50.88 is 50

llrint() en C++

La función llrint() redondea el valor fraccionario dado en el argumento a un valor integral utilizando el modo de redondeo actual. Aquí, el modo actual está determinado por la función fesetround(). Nota: Por lo tanto, la función devuelve el valor en un int largo largo Sintaxis:

llrint(double a);
llrint(float a);

Parámetro:

  • La función llrint() toma valores dobles, flotantes o enteros como argumento.

Devolver:

  • La función llrint() redondea el valor fraccionario dado en el argumento a un valor integral utilizando el modo de redondeo actual y el valor devuelto en long long int. Aquí, el modo actual está determinado por la función fesetround(). De forma predeterminada, la dirección de redondeo se establece en ‘al más cercano’. Se puede cambiar usando fesetround().

Error:

  • Es obligatorio dar un argumento, de lo contrario, dará un error sin función coincidente para llamar a ‘llrint()’ como este.

# CÓDIGO 1 

CPP

// CPP code to illustrate
// the functionality of llrint()
#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;
 
int main()
{
    int a = 15;
    long long int answer;
 
    // setting rounding direction to DOWNWARD
    fesetround(FE_DOWNWARD);
    answer = llrint(a);
    cout << "Downward rounding of " << a
         << " is " << answer << endl;
 
    return 0;
}

PRODUCCIÓN :

Downward rounding of 15 is 15

# CÓDIGO 2 

CPP

// CPP code to illustrate
// the functionality of llrint()
#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;
 
int main()
{
    double a;
    long long int answer;
 
    // By default, the rounding direction is
    // set to 'to-nearest'. fesetround(FE_TONEAREST)
    a = 50.35;
    answer = llrint(a);
    cout << "Nearest rounding of " << a
         << " is " << answer << endl;
 
    // mid values are rounded off to higher integer
    a = 50.5;
    answer = llrint(a);
    cout << "Nearest rounding of " << a
         << " is " << answer << endl;
 
    return 0;
}

PRODUCCIÓN :

Nearest rounding of 50.35 is 50
Nearest rounding of 50.5 is 50

# CÓDIGO 3 

CPP

// CPP code to illustrate
// the functionality of llrint()
#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;
 
int main()
{
    double a;
    long long int answer;
 
    // Now, the rounding direction
    // is set to UPWARD
    fesetround(FE_UPWARD);
    a = 50.3;
    answer = llrint(a);
    cout << "Upward rounding of " << a
         << " is " << answer << endl;
 
    // Now, the rounding direction is set to DOWNWARD
    fesetround(FE_DOWNWARD);
    a = 50.88;
    answer = llrint(a);
    cout << "Downward rounding of " << a
         << " is " << answer << endl;
 
    return 0;
}

PRODUCCIÓN :

Upward rounding of 50.3 is 51
Downward rounding of 50.88 is 50

Publicación traducida automáticamente

Artículo escrito por pawan_asipu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *