我需要一个函数来检查 float 是否与整数类型相同。基本上我想要这样的东西:
template <typename FloatType>
bool is_like_integer(FloatType f)
{
return f == static_cast<FloatType>(static_cast<int>(f));
}
虽然我不知道这是否涵盖所有情况。
基本上,我需要它的原因是因为我将 float 转换为整数,并且希望能够处理 float 不能完美表示整数的情况。标准库是否提供类似的东西?
最佳答案
您可以使用 modf
,它将 float 拆分为整数和小数部分:
float intPart;
if (modf(someInt, &intPart) == 0.0f) {
// exactly representable
}
关于c++ - 标准库是否提供检查 double 是否与整数相同的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29884796/