【发布时间】:2014-06-26 15:03:25
【问题描述】:
我想知道是否有人可以告诉我为什么有人会使用 int 而不是 double? 似乎 double 比 int 灵活得多。
谢谢
【问题讨论】:
我想知道是否有人可以告诉我为什么有人会使用 int 而不是 double? 似乎 double 比 int 灵活得多。
谢谢
【问题讨论】:
整数运算是精确的。 double 是浮点数据类型,只要有分数,浮点运算就是近似的。
double 在许多实现中(例如大多数 32 位系统)占用的空间也是 int 的两倍。
【讨论】:
简答:
int 使用 4 个字节的内存(并且不能包含小数),double 使用 8 个字节的内存。只是用于不同目的的不同工具。
【讨论】:
sizeof(int) 可能是您最好的选择。但是你知道现在任何地方是否存在 2 字节整数吗?
int是整数的二进制表示,double是双精度浮点数。
【讨论】:
int 和 double 具有不同的语义。考虑分工。 1/2 是 0,1.0/2.0 是 0.5。在任何给定的情况下,其中一个答案是对的,另一个是错的。
也就是说,在 JavaScript 等编程语言中,64 位浮点数是唯一的数字数据类型。您必须显式截断一些除法结果才能获得与 Java int 相同的语义。 Java 等支持整数类型的语言会自动截断整数变量。
除了具有与double 不同的语义之外,int 算法通常更快,并且较小的大小(32 位与 64 位)可以更有效地使用缓存和数据传输带宽。
【讨论】: