📅  最后修改于: 2023-12-03 15:40:31.682000             🧑  作者: Mango
当处理浮点数时,经常需要检查它们是否包含小数部分。在 C++ 中,我们可以使用一些方法来实现这一目的。
floor
函数可以返回小于或等于传入参数的最大整数值。我们可以使用它来比较浮点数和其截断整数是否相等,从而判断是否存在小数。
#include <cmath>
bool hasDecimal(float f) {
return f != std::floor(f);
}
在上面的代码中,我们使用了 cmath
头文件中的 std::floor
函数,判断浮点数 f
是否存在小数。
我们可以使用模运算(remainder)来计算浮点数除以 1 的余数,并判断是否为 0。
bool hasDecimal(float f) {
return std::remainder(f, 1) != 0;
}
在上面的代码中,我们使用了 cmath
头文件中的 std::remainder
函数,判断浮点数 f
是否存在小数。
我们可以将浮点数转换为字符串,并查找小数点来判断是否存在小数。
#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 则适用于需要将浮点数转换为字符串的情况。大家可以根据实际需求选择合适的方法。