Bildirim
double nearbyint(double arg); (C99)
float nearbyintf(float arg); (C99)
long double nearbyintl(long double arg); (C99)
Açıklama
Kendisine geçirilen arg parametre değerini geçerli yuvarlama moduna göre bir tamsayı değerine yuvarlar.
Parametreler
arg: Float bir değerdir.
Dönüş değeri
Geçerli yuvarlama moduna göre, arg parametre değerine en yakın tam sayı değeri geri döndürülür.
Örnek
#include <stdio.h>
#include <math.h>
#include <fenv.h>
void Get_Rounding(void);
int main(void)
{
int curr_method;
double dd=5.3;
/* Aktif yuvarlama yöntemi */
Get_Rounding();
printf("Değişken değeri: %.2f, Yuvarlanmış değişken değeri: %.2f\n", dd, nearbyint(dd));
/* Aktif yuvarlama yöntemini kaydetme */
curr_method = fegetround();
/* Geçici olarak aktif yuvarlama yöntemini değiştirme. */
fesetround(FE_UPWARD);
Get_Rounding();
printf("Değişken değeri: %.2f, Yuvarlanmış değişken değeri: %.2f\n", dd, nearbyint(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: 5.30, Yuvarlanmış değişken değeri: 5.00 Aktif yuvarlama yöntemi: FE_UPWARD Değişken değeri: 5.30, Yuvarlanmış değişken değeri: 6.00 Aktif yuvarlama yöntemi: FE_TONEAREST
Yukarıdaki program, nearbyint() fonksiyonu ile elde edilen işlem sonuçlarını ekrana yazar.