C ++ nearint () - Thư viện chuẩn C ++

Hàm nearint () trong C ++ làm tròn đối số thành giá trị tích phân bằng cách sử dụng chế độ làm tròn hiện tại.

Hàm nearint () trong C ++ làm tròn đối số thành giá trị tích phân bằng cách sử dụng chế độ làm tròn hiện tại. Chế độ làm tròn hiện tại được xác định bởi hàm fesetround(). Hàm nearint () tương tự như rint (), ngoại trừ nó không nâng cao ngoại lệ FE_INEXACT như rint ().

Ngoại lệ FE_INEXACT là một ngoại lệ dấu phẩy động xảy ra khi kết quả của một phép toán không được trình bày chính xác do làm tròn hoặc dòng chảy dần dần.

nguyên mẫu nearint () (Theo tiêu chuẩn C ++ 11)

double nearint (double x); float nearint (float x); dài đôi lân cận (dài đôi x); double nearint (T x); // Đối với kiểu tích phân

Hàm nearint () nhận một đối số duy nhất và trả về giá trị kiểu double, float hoặc long double. Hàm này được định nghĩa trong tệp tiêu đề.

Tham số nearint ()

Hàm nearint () nhận một giá trị đối số để làm tròn.

nearint () Giá trị trả về

Hàm nearint () làm tròn đối số x thành một giá trị tích phân, sử dụng hướng làm tròn được chỉ định bởi fegetround () và trả về giá trị. Theo mặc định, hướng làm tròn được đặt thành 'đến gần nhất'. Hướng làm tròn có thể được đặt thành các giá trị khác bằng cách sử dụng hàm fesetround ().

Ví dụ 1: Cách nearint () hoạt động trong C ++?

 #include #include #include using namespace std; int main() ( // by default, rounding direction is to-nearest i.e. fesetround(FE_TONEAREST) double x = 11.87, result; result = nearbyint(x); cout << "Rounding to-nearest (" << x << ") = " << result << endl; // upper value is taken for mid-way values x = 11.5; result = nearbyint(x); cout << "Rounding to-nearest (" << x << ") = " << result << endl; // setting rounding direction to DOWNWARD fesetround(FE_DOWNWARD); x = 17.87; result = nearbyint(x); cout << "Rounding downward (" << x << ") = " << nearbyint(x) << endl; // setting rounding direction to UPWARD x = 33.34; fesetround(FE_UPWARD); result = nearbyint(x); cout << "Rounding upward (" << x << ") = " << result << endl; return 0; )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Làm tròn đến gần nhất (11,87) = 12 Làm tròn đến gần nhất (11,5) = 12 Làm tròn xuống (17,87) = 17 Làm tròn lên (33,3401) = 34

Ví dụ 2: Hàm nearint () cho các kiểu tích phân

 #include #include #include using namespace std; int main() ( int x = 15; double result; // setting rounding direction to DOWNWARD fesetround(FE_DOWNWARD); result = nearbyint(x); cout << "Rounding downward (" << x << ") = " << result << endl; return 0; ) 

Khi bạn chạy chương trình, đầu ra sẽ là:

 Làm tròn xuống (15) = 15 

Đối với các giá trị tích phân, việc áp dụng nearbyinthàm sẽ trả về cùng giá trị với giá trị đầu vào. Vì vậy nó không được sử dụng phổ biến cho các giá trị tích phân trong thực tế.

thú vị bài viết...