Hàm fegetround () trong C ++ được sử dụng để lấy giá trị của macro làm tròn dấu phẩy động tương ứng với hướng làm tròn hiện tại.
Hàm fegetround () được định nghĩa trong tệp tiêu đề.
nguyên mẫu fegetround ()
int fegetround ();
tham số fegetround ()
- không ai
fegetround () Giá trị trả về
- Khi thành công, hàm fegetround () trả về macro làm tròn dấu chấm động mô tả hướng làm tròn hiện tại.
- Khi thất bại, nó trả về một giá trị âm.
Macro | Sự miêu tả |
---|---|
FE_DOWNWARD | Vòng xuống dưới |
FE_TONEAREST | Làm tròn đến giá trị gần nhất |
FE_TOWARDZERO | Làm tròn về 0 |
FE_UPWARD | Vòng lên trên |
Ví dụ: Hàm fegetround () hoạt động như thế nào?
#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(void) ( 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; )
Khi bạn chạy chương trình, đầu ra sẽ là:
Phương pháp làm tròn hiện tại: FE_TONEAREST 6.2 -> 6 18.7 -> 19 Phương thức làm tròn hiện tại: FE_UPWARD 6.2 -> 7 19.7 -> 20 Phương pháp làm tròn hiện tại: FE_DOWNWARD 6.2 -> 6 19.7 -> 19