C ++ fesetround () - C ++ Standart Kitaplığı

C ++ 'daki fesetround () işlevi, kayan nokta yuvarlama makrolarından biri olması beklenen belirtilen kayan nokta yuvarlama yönünü ayarlamaya çalışır.

Fesetround () işlevi başlık dosyasında tanımlanmıştır.

fesetround () prototipi

 int fesetround (int yuvarlak);

Bu işlev, kayan nokta yuvarlama makrolarından biri olan tek bir argüman turu alır. Daha sonra kayan nokta yuvarlama yönü olarak yuvarlamayı dener.

fesetround () Parametreler

  • round: Kayan nokta yuvarlama makrolarından biri olan yuvarlama yönü. Raund için olası değerler FE_TONEAREST, FE_DOWNWARD, FE_UPWARD, FE_TOWARDZERO'dur.

fesetround () Dönüş değeri

  • Başarı durumunda, fesetround () işlevi 0 döndürür.
  • Başarısızlık halinde sıfırdan farklı bir değer döndürür.

Örnek: fesetround () işlevi nasıl çalışır?

 #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; )

Programı çalıştırdığınızda, çıktı:

 Mevcut yuvarlama yöntemi: FE_TONEAREST 6.2 -> 6 18.7 -> 19 Mevcut yuvarlama yöntemi: FE_UPWARD 6.2 -> 7 19.7 -> 20 Mevcut yuvarlama yöntemi: FE_DOWNWARD 6.2 -> 6 19.7 -> 19

Ilginç makaleler...