📜  检查float是否有小数c ++(1)

📅  最后修改于: 2023-12-03 15:40:31.682000             🧑  作者: Mango

检查float是否有小数 - C++

当处理浮点数时,经常需要检查它们是否包含小数部分。在 C++ 中,我们可以使用一些方法来实现这一目的。

方法1:使用 floor 函数

floor 函数可以返回小于或等于传入参数的最大整数值。我们可以使用它来比较浮点数和其截断整数是否相等,从而判断是否存在小数。

#include <cmath>

bool hasDecimal(float f) {
    return f != std::floor(f);
}

在上面的代码中,我们使用了 cmath 头文件中的 std::floor 函数,判断浮点数 f 是否存在小数。

方法2:使用模运算

我们可以使用模运算(remainder)来计算浮点数除以 1 的余数,并判断是否为 0。

bool hasDecimal(float f) {
    return std::remainder(f, 1) != 0;
}

在上面的代码中,我们使用了 cmath 头文件中的 std::remainder 函数,判断浮点数 f 是否存在小数。

方法3:使用字符串比较

我们可以将浮点数转换为字符串,并查找小数点来判断是否存在小数。

#include <string>

bool hasDecimal(float f) {
    std::string str = std::to_string(f);
    return str.find('.') != std::string::npos;
}

在上面的代码中,我们使用了 string 头文件中的 std::to_string 函数将浮点数转换为字符串,并使用 find 函数查找小数点。

总结

上面介绍了三种方法来判断浮点数是否存在小数。其中,方法1 和方法2 适用于判断浮点数是否为整数,方法3 则适用于需要将浮点数转换为字符串的情况。大家可以根据实际需求选择合适的方法。