C ++ nelle vicinanzeint () - Libreria standard C ++

La funzione nearint () in C ++ arrotonda l'argomento a un valore integrale utilizzando la modalità di arrotondamento corrente.

La funzione nearint () in C ++ arrotonda l'argomento a un valore integrale utilizzando la modalità di arrotondamento corrente. La modalità di arrotondamento corrente è determinata dalla funzione fesetround(). La funzione Nearbyint () è simile a rint (), tranne per il fatto che non solleva eccezioni FE_INEXACT come rint ().

Un'eccezione FE_INEXACT è un'eccezione a virgola mobile che si verifica quando il risultato di un'operazione non è rappresentato esattamente a causa dell'arrotondamento o dell'underflow graduale.

prototipo nelle vicinanzeint () (come dallo standard C ++ 11)

double nearint (doppia x); float nearint (float x); lungo doppio vicinoint (lungo doppio x); doppio nearint (T x); // Per il tipo integrale

La funzione Nearbyint () accetta un singolo argomento e restituisce un valore di tipo double, float o long double. Questa funzione è definita nel file di intestazione.

Parametri nelle vicinanzeint ()

La funzione nearint () richiede un singolo valore di argomento da arrotondare.

nearint () Restituisce il valore

La funzione nearint () arrotonda l'argomento x a un valore integrale, utilizzando la direzione di arrotondamento specificata da fegetround () e restituisce il valore. Per impostazione predefinita, la direzione di arrotondamento è impostata su "al più vicino". La direzione di arrotondamento può essere impostata su altri valori utilizzando la funzione fesetround ().

Esempio 1: come funziona nearint () in C ++?

 #include #include #include using namespace std; int main() ( // by default, rounding direction is to-nearest i.e. fesetround(FE_TONEAREST) double x = 11.87, result; result = nearbyint(x); cout << "Rounding to-nearest (" << x << ") = " << result << endl; // upper value is taken for mid-way values x = 11.5; result = nearbyint(x); cout << "Rounding to-nearest (" << x << ") = " << result << endl; // setting rounding direction to DOWNWARD fesetround(FE_DOWNWARD); x = 17.87; result = nearbyint(x); cout << "Rounding downward (" << x << ") = " << nearbyint(x) << endl; // setting rounding direction to UPWARD x = 33.34; fesetround(FE_UPWARD); result = nearbyint(x); cout << "Rounding upward (" << x << ") = " << result << endl; return 0; )

Quando esegui il programma, l'output sarà:

 Arrotondamento al più vicino (11,87) = 12 Arrotondamento al più vicino (11,5) = 12 Arrotondamento per difetto (17,87) = 17 Arrotondamento per eccesso (33,3401) = 34

Esempio 2: funzione nearint () per i tipi integrali

 #include #include #include using namespace std; int main() ( int x = 15; double result; // setting rounding direction to DOWNWARD fesetround(FE_DOWNWARD); result = nearbyint(x); cout << "Rounding downward (" << x << ") = " << result << endl; return 0; ) 

Quando esegui il programma, l'output sarà:

 Arrotondamento per difetto (15) = 15 

Per i valori integrali, l'applicazione della nearbyintfunzione restituisce lo stesso valore dell'input. Quindi non è comunemente usato per i valori integrali nella pratica.

Articoli interessanti...