Fungsi fesetround () dalam C ++ cuba menetapkan arah pembulatan titik terapung yang ditentukan yang diharapkan menjadi salah satu makro pembulatan titik terapung.
Fungsi fesetround () ditentukan dalam fail header.
prototaip fesetround ()
int fesetround (int pusingan);
Fungsi ini memerlukan satu pusingan argumen, yang merupakan salah satu makro pembulatan titik terapung. Ia kemudian berusaha untuk membulat sebagai arah pembulatan titik terapung.
fesetround () Parameter
- bulat: Arah pembundaran yang merupakan salah satu makro pembulatan titik terapung. Nilai yang mungkin untuk pusingan adalah FE_TONEAREST, FE_DOWNWARD, FE_UPWARD, FE_TOWARDZERO.
fesetround () Nilai pulangan
- Setelah berjaya, fungsi fesetround () mengembalikan 0.
- Sekiranya gagal, ia mengembalikan bukan sifar.
Contoh: Bagaimana fungsi fesetround () berfungsi?
#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; )
Semasa anda menjalankan program, outputnya adalah:
Kaedah pembundaran semasa: FE_TONEAREST 6.2 -> 6 18.7 -> 19 Kaedah pembundaran semasa: FE_UPWARD 6.2 -> 7 19.7 -> 20 Kaedah pembundaran semasa: FE_DOWNWARD 6.2 -> 6 19.7 -> 19