6

我正在监视type_traits,并且偶然发现了一个事实,即float它不被认为是一个整数类型。这对我来说有点意外。

我浏览了网络以找到适当的信息,但找不到与该事实有关的任何信息。我能找到的是这样的:

如果 T 是整数类型(bool、char、char16_t、char32_t、wchar_t、short、int、long、long long,包括任何有符号、无符号和 cv 限定的变体),则提供等于 true 的成员常量值。对于任何其他类型,值为 false。

所以这里的问题是:为什么 C++ 标准委员会决定 float不是整数类型?

4

4 回答 4

12

整数类型是只有整数的类型 - 整数。浮点类型的目的也是表示非整数。

关于整数(计算机科学)的维基百科页面

在计算机科学中,整数是整数数据类型的数据,表示数学整数的某个有限子集的数据类型。

于 2013-03-02T08:04:21.040 回答
5

我怀疑你的困惑是积分的含义是什么:

积分的定义

1 a:对完整性至关重要:构成“课程的组成部分”

b (1) :存在、包含或与一个或多个数学整数有关 (2) : 与数学积分或数学积分的结果有关或有关

它不是(1a)对完整性(这float将是)必不可少的,而是(1b)与整数有关。

于 2013-03-02T08:07:53.410 回答
4

Jon 的回答是正确的,但这里简要概述了一些可能对您有所帮助的 类型特征

  • is_integral检查类型是否为整型
  • is_floating_point检查类型是否为浮点类型
  • is_arithmetic检查类型是整数类型还是浮点类型

这是 Howard Hinnant的一个很好的图表,它显示了类型类别之间的关系。

于 2013-03-02T08:47:34.463 回答
-1

这些是整数类型,因为在 c++ 中存储整数类型或字符时,它以整数格式存储(甚至字符,即 ASCII 格式)。但是浮点数不是这样存储的,我们没有任何方法可以将浮点数转换为二进制格式

于 2020-04-07T17:08:21.370 回答