English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

教程基础C++

Controllo dei flussi in C++

Funzione C++

Array e stringhe in C++

Strutture dati in C++

Classi e oggetti in C++

Puntatore C++

Ereditarietà C++

Tutorial STL C++

Manuale di riferimento di C++

Metodo e esempio di utilizzo della funzione lrint() in C++

Funzione di libreria <cmath> C++

La funzione lrint() in C++ arrotonda il parametro a un valore intero utilizzando lo schema di arrotondamento attuale. Lo schema di arrotondamento attuale è determinato dalla funzione fesetround().

La funzione lrint() in C++ arrotonda il parametro a un valore intero utilizzando lo schema di arrotondamento attuale. Lo schema di arrotondamento attuale è determinato dalla funzione fesetround().rint(), ma restituisce long int.

Prototipo di lrint() [dalla versione standard C++ 11]

long int lrint(double x);
long int lrint(float x);
long int lrint(long double x);
long int lrint(T x); // Per tipi interi

La funzione lrint() accetta un singolo parametro e restituisce un valore long int. Questa funzione è disponibile a partire dalla versione C++ 11.<cmath>Definito nel file di intestazione.

Parametro di lrint()

La funzione lrint() accetta un singolo parametro e ne restituisce l'intero.

Valore di ritorno di lrint()

La funzione lrint() utilizza la direzione di arrotondamento specificata da fegetround() per arrotondare il parametro x a un valore intero e restituire il valore long int.

Per impostazione predefinita, la direzione di arrotondamento è impostata su "più vicino". Puoi impostare altri valori utilizzando la funzione fesetround()

Esempio 1: Come funziona lrint() in C++?

#include <iostream>
#include <cmath>
#include <cfenv>
using namespace std;
int main()
{
    //Per impostazione predefinita, la direzione di arrotondamento è "più vicino". Puoi impostare altre valori utilizzando la funzione fesetround()
    double x = 11.87;
    long int result;
    result = lrint(x);
    cout << "Arrotondamento al più vicino (" << x << ") = " << result << endl;
    
    //Il valore intermedio viene arrotondato al numero intero più alto
    x = 11.5;
    result = lrint(x);
    cout << "Arrotondamento al più vicino (" << x << ") = " << result << endl;
    //Imposta la direzione di arrotondamento su DOWNWARD
    fesetround(FE_DOWNWARD);
    x = 11.87;
    result = lrint(x);
    cout << "Arrotondamento verso il basso (" << x << ") = " << result << endl;
    
    //Impostare la direzione di arrotondamento su UPWARD
    fesetround(FE_UPWARD);
    x = 33.32;
    result = lrint(x);
    cout << "Arrotondamento verso l'alto (" << x << ") = " << result << endl;
    
    return 0;
}

Quando si esegue il programma, l'output è:

Arrotondamento al più vicino (11.87) = 12
Arrotondamento al più vicino (11.5) = 12
Arrotondamento verso il basso (11.8699) = 11
Arrotondamento verso l'alto (33.3201) = 34

Esempio 2: la funzione lrint() di tipo intero

#include <iostream>
#include <cmath>
#include <cfenv>
using namespace std;
int main()
{
    int x = 15;
    long int result;
    
    //Imposta la direzione di arrotondamento su DOWNWARD
    fesetround(FE_DOWNWARD);
    result = lrint(x);
    cout << "Arrotondamento verso il basso (" << x << ") = " << result << endl;
    return 0;
}

Quando si esegue il programma, l'output è:

Arrotondamento verso il basso (15) = 15

Per i valori interi, la funzione lrint restituisce lo stesso valore dell'input. Pertanto, non viene utilizzata spesso per rappresentare valori interi.

Funzione di libreria <cmath> C++