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

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

isless() ตรวจสอบว่าอากิวเมนต์แรก น้อยกว่า อากิวเมนต์ที่สอง อย่างเคร่งครัด (Strict Less Than) ประกาศใน <math.h>/<cmath> ส่งคืน bool

รูปแบบ

bool isless(value1, value2);

เทียบเท่า: value1 < value2 แต่ปลอดภัยกับ NaN (ไม่โยน Exception)

ตัวอย่างโค้ด

#include <stdio.h>
#include <math.h>

int main() {
    int val1 = 48;
    float val2 = 324.32;
    if (isless(val1, val2))
        printf("val1 is less than val2\n");
    else
        printf("val1 is not less than val2");
    return 0;
}

ผลลัพธ์

val1 is less than val2

เมื่อไหร่ควรใช้ isless() แทน <

  • เมื่ออาจมีค่า NaN (Not a Number) เช่น ผลลัพธ์ sqrt(-1) หรือ 0.0/0.0
  • Operator < กับ NaN จะยก Floating-point Exception (FE_INVALID)
  • isless() ส่งคืน false อย่างเงียบๆ หากมี NaN

ฟังก์ชันเปรียบเทียบ FP ที่ปลอดภัย (C99/C++11)

Functionความหมาย
isless(x, y)x < y
isgreater(x, y)x > y
islessequal(x, y)x ≤ y
isgreaterequal(x, y)x ≥ y
islessgreater(x, y)x < y || x > y
isunordered(x, y)x หรือ y เป็น NaN