ในส่วนนี้จะพูดถึง lrint() และ llrint() ใน C++ เริ่มจาก lrint() ก่อน
ฟังก์ชัน lrint() ใช้ปัดเศษค่าทศนิยมในอาร์กิวเมนต์ให้เป็นค่าเต็มโดยใช้โหมดการปัดปัจจุบัน โหมดปัจจุบันกำหนดโดย fesetround()
lrint() รับค่า double, float หรือ integer และคืนค่า long int โดยปัดส่วนทศนิยมเป็นจำนวนเต็ม
ตัวอย่าง
#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;
main() {
int x = 40;
long int res;
fesetround(FE_DOWNWARD); // กำหนดทิศทางปัดเป็น DOWNWARD
res = lrint(x);
cout << "Downward rounding of " << x << " is " << res << endl;
}
ผลลัพธ์
Downward rounding of 40.0235 is 40
ฟังก์ชัน llrint() ใช้ปัดเศษค่าทศนิยมให้เป็นค่าเต็มโดยใช้โหมดการปัดปัจจุบัน โหมดปัจจุบันกำหนดโดย fesetround()
llrint() รับค่า double, float หรือ integer และคืนค่า long long int โดยปัดส่วนทศนิยมเป็นจำนวนเต็ม
ตัวอย่าง
#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;
main() {
double a;
long int res;
fesetround(FE_UPWARD); // กำหนดทิศทางปัดเป็น UPWARD
a = 40.3;
res = llrint(a);
cout << "Upward rounding of " << a << " is " << res << endl;
fesetround(FE_DOWNWARD); // กำหนดทิศทางปัดเป็น DOWNWARD
a = 40.88;
res = llrint(a);
cout << "Downward rounding of " << a << " is " << res << endl;
}
ผลลัพธ์
Upward rounding of 40.3 is 41 Downward rounding of 40.88 is 40