Hàm fesetround () trong C ++ cố gắng thiết lập hướng làm tròn dấu phẩy động được chỉ định được mong đợi là một trong các macro làm tròn dấu phẩy động.
Hàm fesetround () được định nghĩa trong tệp tiêu đề.
nguyên mẫu fesetround ()
int fesetround (int vòng);
Hàm này nhận một vòng đối số duy nhất, là một trong những macro làm tròn dấu chấm động. Sau đó, nó cố gắng đặt vòng làm hướng làm tròn dấu phẩy động.
tham số fesetround ()
- round: Hướng làm tròn là một trong các macro làm tròn dấu chấm động. Các giá trị có thể có cho vòng là FE_TONEAREST, FE_DOWNWARD, FE_UPWARD, FE_TOWARDZERO.
fesetround () Giá trị trả về
- Khi thành công, hàm fesetround () trả về 0.
- Khi thất bại, nó trả về nonzero.
Ví dụ: Hàm fesetround () 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() ( 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