为什么要使用' int'数据类型而不是' float'数据类型?

时间:2014-10-07 02:36:10

标签: c++

最近我一直在学习一些C ++,但我遇到了一个难题:

众所周知,'int'数据类型用于保存整数和整数,而'float'数据类型用于定义包含实数和小数的变量。但是,我发现我可以轻松地将一个整数放入'float'数据类型的变量中,从而无需使用'int'类型?

如果是这种情况,为什么我会继续在'float'上使用'int'数据类型?使用后者会更方便......它会被认为是不良形式吗?

3 个答案:

答案 0 :(得分:1)

一些原因:

  • int几乎普遍更有效率
  • int允许逐位操作
  • intmain()
  • 的返回类型

答案 1 :(得分:1)

在算术计算中,它被认为比int慢 由于他们的岁差,你不可能在比较中使用花车。 (read more here

这也是一篇好文章:

Float vs. integer:

  

历史上,浮点可能比整数慢得多   算术。在现代计算机上,情况已经不再如此(它   在某些平台上有点慢,但除非你写得很完美   为每个周期编码和优化,差异将被淹没   代码中的其他低效率。)

     

在有限的处理器上,如高端手机中的处理器,   浮点数可能比整数慢一些,但通常都是这样   只要有硬件,在一个数量级(或更好)内   浮点可用。值得注意的是,这种差距正在缩小   随着手机越来越多地运行,手机也越来越快   一般计算工作量。

     

在非常有限的处理器(便宜的手机和烤面包机)上   一般没有浮点硬件,所以浮点运算   需要在软件中进行模拟。这很慢 - 几个订单   幅度比整数算术慢。

     

正如我所说,人们期待他们的手机和其他设备   表现得越来越像“真正的计算机”和硬件设计师   正在迅速加强FPU以满足这一需求。除非你在追逐   每个最后一个周期,或者您正在为非常有限的CPU编写代码   很少或没有浮点支持,性能区别   对你没关系。

我建议你阅读整篇文章,以清楚地了解他们的区别。

答案 2 :(得分:1)

除了在其他答案中提到的效率问题之外,您还应该意识到使用float实际上不如int更直观。

为了进行比较,你几乎不应该做像

这样的事情
if (aFloat == anotherFloat) { ...

您需要了解并非所有十进制值都可以用浮点数精确表示。