C ++ fesetround () - C ++ standaardbibliotheek

De functie fesetround () in C ++ probeert de opgegeven afrondingsrichting voor drijvende komma in te stellen, die naar verwachting een van de macro's voor afronden met drijvende komma zal zijn.

De functie fesetround () is gedefinieerd in het headerbestand.

fesetround () prototype

 int fesetround (int ronde);

Voor deze functie moet één argument worden afgerond, wat een van de afrondingsmacro's met drijvende komma is. Vervolgens wordt geprobeerd rond in te stellen als de afrondingsrichting van de drijvende komma.

fesetround () Parameters

  • rond: afrondingsrichting, een van de afrondingsmacro's met drijvende komma. De mogelijke waarden voor ronde zijn FE_TONEAREST, FE_DOWNWARD, FE_UPWARD, FE_TOWARDZERO.

fesetround () Retourwaarde

  • Bij succes retourneert de functie fesetround () 0.
  • Bij een fout wordt niet-nul geretourneerd.

Voorbeeld: hoe werkt de functie fesetround ()?

 #include #include #include #pragma STDC FENV_ACCESS ON using namespace std; void print_current_rounding_direction() ( cout << "Current rounding method: "; switch (fegetround()) ( case FE_TONEAREST: cout << "FE_TONEAREST"; break; case FE_DOWNWARD: cout << "FE_DOWNWARD"; break; case FE_UPWARD: cout << "FE_UPWARD"; break; case FE_TOWARDZERO: cout << "FE_TOWARDZERO"; break; default: cout << "unknown"; ); cout << endl; ) int main() ( print_current_rounding_direction(); cout < " << rint(6.2) << endl; cout < " << rint(18.7) << endl; fesetround(FE_UPWARD); print_current_rounding_direction(); cout < " << rint(6.2) << endl; cout < " << rint(19.7) << endl; fesetround(FE_DOWNWARD); print_current_rounding_direction(); cout < " << rint(6.2) << endl; cout < " << rint(19.7) << endl; return 0; )

Wanneer u het programma uitvoert, is de uitvoer:

 Huidige afrondingsmethode: FE_TONEAREST 6,2 -> 6 18,7 -> 19 Huidige afrondingsmethode: FE_UPWARD 6,2 -> 7 19,7 -> 20 Huidige afrondingsmethode: FE_DOWNWARD 6,2 -> 6 19,7 -> 19

Interessante artikelen...