Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm lrint() và llrint() trong C++


Trong phần này chúng ta sẽ xem lrint() và llrint() trong C++. Trước hãy nói về lrint().

Hàm lrint() dùng để làm tròn giá trị phân số trong tham số thành giá trị nguyên sử dụng chế độ làm tròn hiện tại. Chế độ hiện tại được xác định bằng fesetround().

Hàm lrint() nhận tham số kiểu double, float hoặc int, và trả về giá trị long int sau khi làm tròn phần phân số thành phần nguyên.

Ví dụ

#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;

main() {
    int x = 40;
    long int res;
    fesetround(FE_DOWNWARD); // thiết lập làm tròn xuống
    res = lrint(x);
    cout << "Làm tròn xuống của " << x << " là " << res << endl;
}

Kết quả

Làm tròn xuống của 40.0235 là 40

Hàm llrint() dùng để làm tròn giá trị phân số trong tham số thành giá trị nguyên sử dụng chế độ làm tròn hiện tại. Chế độ hiện tại được xác định bằng fesetround().

Hàm này nhận tham số double, float hoặc int, và trả về long long int sau khi làm tròn phần phân số.

Ví dụ

#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;

main() {
    double a;
    long int res;
    fesetround(FE_UPWARD); // làm tròn lên
    a = 40.3;
    res = llrint(a);
    cout << "Làm tròn lên của " << a << " là " << res << endl;
    fesetround(FE_DOWNWARD); // làm tròn xuống
    a = 40.88;
    res = llrint(a);
    cout << "Làm tròn xuống của " << a << " là " << res << endl;
}

Kết quả

Làm tròn lên của 40.3 là 41
Làm tròn xuống của 40.88 là 40