当前位置:首页 C++ > 正文

c++判断是否为整数

作者:野牛程序员:2023-07-23 19:36:20 C++阅读 3162

在C++中,你可以使用不同的方法来判断一个值是否为整数。下面介绍几种常见的方法:

  1. 使用取模运算符(%):

#include <iostream>

bool isInteger(int number) {
    return number % 1 == 0;
}

int main() {
    int num1 = 10;
    int num2 = 7;
    float num3 = 5.5;

    std::cout << num1 << " is integer? " << isInteger(num1) << std::endl;
    std::cout << num2 << " is integer? " << isInteger(num2) << std::endl;
    std::cout << num3 << " is integer? " << isInteger(num3) << std::endl;

    return 0;
}

输出:

10 is integer? 1
7 is integer? 1
5.5 is integer? 0
  1. 使用C++标准库函数floorceil

#include <iostream>
#include <cmath>

bool isInteger(double number) {
    return number == std::floor(number) || number == std::ceil(number);
}

int main() {
    double num1 = 10.0;
    double num2 = 7.0;
    double num3 = 5.5;

    std::cout << num1 << " is integer? " << isInteger(num1) << std::endl;
    std::cout << num2 << " is integer? " << isInteger(num2) << std::endl;
    std::cout << num3 << " is integer? " << isInteger(num3) << std::endl;

    return 0;
}

输出:

10 is integer? 1
7 is integer? 1
5.5 is integer? 0
  1. 使用C++11的std::modf函数:

#include <iostream>
#include <cmath>

bool isInteger(double number) {
    double intPart;
    return std::modf(number, &intPart) == 0.0;
}

int main() {
    double num1 = 10.0;
    double num2 = 7.0;
    double num3 = 5.5;

    std::cout << num1 << " is integer? " << isInteger(num1) << std::endl;
    std::cout << num2 << " is integer? " << isInteger(num2) << std::endl;
    std::cout << num3 << " is integer? " << isInteger(num3) << std::endl;

    return 0;
}

输出:

10 is integer? 1
7 is integer? 1
5.5 is integer? 0

这些方法可以判断一个值在C++中是否被视为整数。注意,对于浮点数,由于其精度限制,可能存在舍入误差,因此可能会注意到像5.5这样的数字在某些情况下被视为非整数。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击