整数和双精度值之间的差异
为什么有人会使用int而不是double?
似乎双精度比int灵活得多。
int
并具有不同的语义。考虑划分。 是 ,是 。在任何特定情况下,其中一个答案将是正确的,另一个是错误的。double
1/2
0
1.0/2.0
0.5
也就是说,有些编程语言,如JavaScript,其中64位浮点数是唯一的数字数据类型。您必须显式截断一些除法结果才能获得与 Java 相同的语义。支持整数类型的 Java 等语言使整数变量的截断自动生效。int
除了具有不同的语义之外,算术通常更快,并且较小的大小(32位与64位)导致更有效地使用缓存和数据传输带宽。double
int
对整数的运算是精确的。 是一种浮点数据类型,只要有分数,浮点运算就是近似值。double
double
占用的空间也是许多实现(例如大多数32位系统)的两倍。int