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

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

fesetround() fonksiyonu

Bildirim

int fesetround(int round); (C99)

Açıklama

Round parametresinde yer alan float değer yuvarlama yöntemini aktif yuvarlama yöntemi olarak ayarlar.

Parametreler

round: Float değer yuvarlama yöntemlerinden biridir.

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.