Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ฟังก์ชัน isinf() ใน C++

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() - ตรวจสอบว่าค่าเป็น NaN
  • isnormal() - ตรวจสอบว่าค่าเป็นปกติ (ไม่ใช่ 0, subnormal, inf, NaN)
  • fpclassify() - จัดประเภทค่า floating-point

ค่าคงที่ที่เกี่ยวข้อง: INFINITY (macro สำหรับ +inf), NAN (macro สำหรับ NaN) ใน <cmath>