C++ ceil()函數(shù)處理邊界值的情況

c++
小樊
84
2024-09-10 18:32:18

ceil() 函數(shù)是 C++ 標(biāo)準(zhǔn)庫(kù) <cmath> 中的一個(gè)函數(shù),用于計(jì)算大于或等于給定浮點(diǎn)數(shù)的最小整數(shù)。當(dāng)輸入為負(fù)數(shù)時(shí),ceil() 函數(shù)會(huì)向零方向取整。對(duì)于邊界值,ceil() 函數(shù)的行為如下:

  1. 正無(wú)窮大:如果輸入為正無(wú)窮大,ceil() 函數(shù)將返回正無(wú)窮大。
#include<iostream>
#include <cmath>

int main() {
    double input = std::numeric_limits<double>::infinity();
    double result = std::ceil(input);
    std::cout << "ceil(positive infinity) = "<< result<< std::endl;
    return 0;
}
  1. 負(fù)無(wú)窮大:如果輸入為負(fù)無(wú)窮大,ceil() 函數(shù)將返回負(fù)無(wú)窮大。
#include<iostream>
#include <cmath>

int main() {
    double input = -std::numeric_limits<double>::infinity();
    double result = std::ceil(input);
    std::cout << "ceil(negative infinity) = "<< result<< std::endl;
    return 0;
}
  1. NaN(非數(shù)字):如果輸入為 NaN,ceil() 函數(shù)的行為是未定義的。在實(shí)際應(yīng)用中,它可能返回 NaN 或觸發(fā)異常。
#include<iostream>
#include <cmath>

int main() {
    double input = std::numeric_limits<double>::quiet_NaN();
    double result = std::ceil(input);
    std::cout << "ceil(NaN) = "<< result<< std::endl;
    return 0;
}

請(qǐng)注意,這些示例使用了 std::numeric_limits 來(lái)表示特殊的浮點(diǎn)值(如無(wú)窮大和 NaN)。要使用這些示例,需要包` 頭文件。

0