Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
C Programlama

BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C standart kütüphanesi > <fenv.h> (C99) > fegetround

fegetround() fonksiyonu

Bildirim

int fegetround(); (C99)

Açıklama

Geçerli yuvarlama yöntemine karşılık gelen float değer yuvarlama makrosunun değerini döndürür.

Parametreler

Yok.

Dönüş değeri

Fonksiyon başarılı bir şekilde çalışırsa 0, aksi takdirde sıfır olmayan bir değer geri döndürür.

Örnek


#include <stdio.h>
#include <math.h>
#include <fenv.h>

void Get_Rounding(void);

int main(void)
{
    int curr_method;
    double dd=7.5;

    /* Aktif yuvarlama yöntemi */
    Get_Rounding();
    printf("Değişken değeri: %.2f, Yuvarlanmış değişken değeri: %.2f\n", dd, rint(dd));

    /* Aktif yuvarlama yöntemini kaydetme */
    curr_method = fegetround();

    /* Geçici olarak aktif yuvarlama yöntemini değiştirme. */
    fesetround(FE_DOWNWARD);
    Get_Rounding();
    printf("Değişken değeri: %.2f, Yuvarlanmış değişken değeri: %.2f\n", dd, rint(dd));

    /* Ön tanımlı yuvarlama yöntemini yeniden yükleme. */
    fesetround(curr_method);
    Get_Rounding();

    return 0;
}

void Get_Rounding(void)
{
  char *csonuc;

  switch (fegetround()) {
     case FE_TONEAREST:
          csonuc="FE_TONEAREST";
          break;
     case FE_DOWNWARD:
          csonuc="FE_DOWNWARD";
          break;
     case FE_UPWARD:
          csonuc="FE_UPWARD";
          break;
     case FE_TOWARDZERO:
          csonuc="FE_TOWARDZERO";
          break;
     default:
         csonuc="Bilinmiyor.";
  };

  printf("Aktif yuvarlama yöntemi: %s\n", csonuc);
}

Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:

Aktif yuvarlama yöntemi: FE_TONEAREST
Değişken değeri: 7.50, Yuvarlanmış değişken değeri: 8.00
Aktif yuvarlama yöntemi: FE_DOWNWARD
Değişken değeri: 7.50, Yuvarlanmış değişken değeri: 7.00
Aktif yuvarlama yöntemi: FE_TONEAREST

Yukarıdaki program, bir double değişken değerini önce aktif yuvarlama yöntemine göre, aktif yuvarlama yöntemini fesetround() fonksiyonu ile FE_DOWNWARD değerine ayarladıktan sonra, yeni yönteme göre rint() fonksiyonu ile yuvarlayarak ekrana yazar.