std::rint, std::lrint, std::llrint
Da cppreference.com.
![]() |
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate.
La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
Elemento definito nell'header <cmath>
|
||
int rint( float arg ); |
(dal C++11) | |
int rint( double arg ); |
(dal C++11) | |
int rint( long double arg ); |
(dal C++11) | |
int rint( Integral arg ); |
(dal C++11) | |
long lrint( float arg ); |
(dal C++11) | |
long lrint( double arg ); |
(dal C++11) | |
long lrint( long double arg ); |
(dal C++11) | |
long lrint( Integral arg ); |
(dal C++11) | |
long long llrint( float arg ); |
(dal C++11) | |
long long llrint( double arg ); |
(dal C++11) | |
long long llrint( long double arg ); |
(dal C++11) | |
long long llrint( Integral arg ); |
(dal C++11) | |
Arrotonda il virgola mobile
arg
argomento in un valore intero in formato di virgola mobile, utilizzando la modalità corrente di arrotondamento. Se il risultato è diverso da arg
(cioè, arg
non era già un valore intero), la virgola mobile FE_INEXACT eccezione viene sollevata.Original:
Rounds the floating-point argument
arg
to an integer value in floating-point format, using the current rounding mode. If the result differs from arg
(i.e., arg
was not an integer value already), the floating-point exception FE_INEXACT is raised.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Indice |
[modifica] Parametri
arg | - | valore in virgola mobile
Original: floating point value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[modifica] Valore di ritorno
Il risultato intero di
arg
arrotondamentoOriginal:
The integer result of rounding
arg
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifica] Note
L'unica differenza tra std::nearbyint e std::rint è che std::rint può sollevare in virgola mobile eccezione FE_INEXACT, pur non essendo mai std::nearbyint solleva.
Original:
The only difference between std::nearbyint and std::rint is that std::rint may raise the FE_INEXACT floating-point exception, while std::nearbyint never raises it.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifica] Esempio
#include <cmath> #include <cfenv> #include <iostream> int main() { #pragma STDC FENV_ACCESS ON std::fesetround(FE_DOWNWARD); std::cout << "rounding using FE_DOWNWARD:\n" << std::fixed << " 12.0 -> " << std::rint(12.0) << '\n' << " 12.1 -> " << std::rint(12.1) << '\n' << "-12.1 -> " << std::rint(-12.1) << '\n' << " 12.5 -> " << std::rint(12.5) << '\n' << " 12.9 -> " << std::rint(12.9) << '\n' << "-12.9 -> " << std::rint(-12.9) << '\n' << " 13.0 -> " << std::rint(13.0) << '\n'; std::fesetround(FE_TONEAREST); std::cout << "rounding using FE_TONEAREST: \n" << " 12.0 -> " << std::rint(12.0) << '\n' << " 12.1 -> " << std::rint(12.1) << '\n' << "-12.1 -> " << std::rint(-12.1) << '\n' << " 12.5 -> " << std::rint(12.5) << '\n' << " 12.9 -> " << std::rint(12.9) << '\n' << "-12.9 -> " << std::rint(-12.9) << '\n' << " 13.0 -> " << std::rint(13.0) << '\n'; std::cout << "When rounding 12.0 "; std::feclearexcept(FE_ALL_EXCEPT); std::rint(12.0); if(std::fetestexcept(FE_ALL_EXCEPT) & FE_INEXACT) { std::cout << "inexact result reported\n"; } else { std::cout << "inexact result not reported\n"; } std::cout << "When rounding 12.1 "; std::rint(12.1); if(std::fetestexcept(FE_ALL_EXCEPT) & FE_INEXACT) { std::cout << "inexact result reported\n"; } else { std::cout << "inexact result not reported\n"; } }
Output:
rounding using FE_DOWNWARD: 12.0 -> 12.000000 12.1 -> 12.000000 -12.1 -> -13.000000 12.5 -> 12.000000 12.9 -> 12.000000 -12.9 -> -13.000000 13.0 -> 13.000000 rounding using FE_TONEAREST: 12.0 -> 12.000000 12.1 -> 12.000000 -12.1 -> -12.000000 12.5 -> 12.000000 12.9 -> 13.000000 -12.9 -> -13.000000 13.0 -> 13.000000 When rounding 12.0 inexact result not reported When rounding 12.1 inexact result reported
[modifica] Vedi anche
(C++11) |
numero intero più vicino utilizzando la modalità corrente di arrotondamento Original: nearest integer using current rounding mode The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione) |
(C++11) |
intera più vicina non superiore in grandezza rispetto al valore dato Original: nearest integer not greater in magnitude than the given value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione) |
(C++11) (C++11) |
ottiene o imposta la direzione di arrotondamento Original: gets or sets rounding direction The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione) |