isinf() คืออะไร?
isinf() เป็นฟังก์ชันในตัวใน C++ ซึ่งอยู่ในไฟล์หัวข้อ <cmath> ฟังก์ชันนี้ใช้ตรวจสอบว่าตัวแปรที่ส่งเข้าไปเป็น คอนันต์ (infinity) หรือไม่ ไม่ว่าจะเป็น infinity บวก (+inf) หรือลบ (-inf) หากตัวเลขเป็น infinity ฟังก์ชันจะส่งคืนค่าที่ไม่ใช่ศูนย์ (true) และหากไม่ใช่ จะส่งคืนศูนย์ (false) หากตัวเลขเป็น NaN ฟังก์ชันก็จะส่งคืน 0 เช่นกัน
ไวยากรณ์ (Syntax)
bool isinf(float x); bool isinf(double x); bool isinf(long double x);
ฟังก์ชันรับพารามิเตอร์เพียงหนึ่งตัวแบบจุดลอยตัว
ค่าที่ส่งคืน (Return Value)
ฟังก์ชันส่งคืนค่าบูลีน: 0 (false) หากไม่ใช่ infinity, 1 (true) หากเป็น infinity
ตัวอย่างที่ 1: ตรวจสอบการหารด้วยศูนย์
#include <cmath>
#include <iostream>
using namespace std;
int main() {
float a = 0.0f, b = 10.0f;
isinf(a / b) ? cout << "\nFinite (จำกัด)" : cout << "\nInfinite (อนันต์)";
isinf(b / a) ? cout << "\nInfinite (อนันต์)" : cout << "\nFinite (จำกัด)";
return 0;
}
ผลลัพธ์ (Output)
Finite (จำกัด) Infinite (อนันต์)
ตัวอย่างที่ 2: ตรวจสอบค่า 0 และ NaN
#include <cmath>
#include <iostream>
using namespace std;
int main() {
float a = 0.0f;
cout << "isinf(0.0) = " << isinf(a) << endl;
cout << "isinf(sqrt(-1.0)) = " << isinf(sqrt(-1.0f)) << endl; // NaN
return 0;
}
ผลลัพธ์ (Output)
isinf(0.0) = 0 isinf(sqrt(-1.0)) = 0
ฟังก์ชันที่เกี่ยวข้อง:
isfinite()- ตรวจสอบว่าค่าเป็นจำกัด (ไม่ใช่ inf และไม่ใช่ NaN)isnan()- ตรวจสอบว่าค่าเป็น NaNisnormal()- ตรวจสอบว่าค่าเป็นปกติ (ไม่ใช่ 0, subnormal, inf, NaN)fpclassify()- จัดประเภทค่า floating-point
ค่าคงที่ที่เกี่ยวข้อง: INFINITY (macro สำหรับ +inf), NAN (macro สำหรับ NaN) ใน <cmath>