c++ - 标准库是否提供检查 double 是否与整数相同的函数?

标签 c++

我需要一个函数来检查 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/

相关文章:

c++ - 获取C++中wavin lib捕获的音频信号的幅度(或均方根电压)?

c++ - 连接到 Wi-Fi C++

c++ - 入队功能

c++ - 为什么当我从两个角度的和本身显示为 180 时减去 180 时得到错误答案?

c++ - 调用 C++ dll 时发生访问冲突

c++ - 在 C++ 中将指针转换为 (const char*) 是什么意思?

php - 如何在 php 中创建循环模板

c++ - 在 C++ 中解析 iCal/vCal/Google 日历文件

c++ - 无法使用 ofstream 写入空格,但 endl 工作正常

c++ - 在没有模板的情况下声明函数模板实例化