Bildirim
double rint(double arg); (C99)
float rintf(float arg); (C99)
long double rintl(long double arg); (C99)
double lrint(double arg); (C99)
float lrintf(float arg); (C99)
long double lrintl(long double arg); (C99)
double llrint(double arg); (C99)
float llrintf(float arg); (C99)
long double llrintl(long double arg); (C99)
Açıklama
Kendisine geçirilen parametreyi, geçerli yuvarlama moduna göre en yakın tamsayı değerine yuvarlar.
Parametreler
arg: Float bir değerdir.
Dönüş değeri
Eğer bir hata meydana gelmezse, geçerli yuvarlama moduna göre en yakın tamsayı 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=7.3;
/* 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_UPWARD);
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.30, Yuvarlanmış değişken değeri: 7.00 Aktif yuvarlama yöntemi: FE_UPWARD Değişken değeri: 7.30, Yuvarlanmış değişken değeri: 8.00 Aktif yuvarlama yöntemi: FE_TONEAREST
Yukarıdaki program, rint() fonksiyonu ile elde edilen işlem sonucunu ekrana yazar.