int和double之间的区别

mat*_*att 8 double int

我想知道是否有人可以告诉我为什么有人会使用int而不是double?似乎double比int更灵活.

谢谢

Pat*_*han 11

int并double有不同的语义.考虑分裂.1/2是0,1.0/2.0是0.5.在任何给定的情况下,其中一个答案是正确的,另一个是错误的.

也就是说,有一些编程语言,例如JavaScript,其中64位浮点数是唯一的数字数据类型.您必须显式截断某些除法结果以获得与Java相同的语义int.支持整数类型的Java等语言会对整数变量进行自动截断.

除了具有不同的语义之外double,int算术通常更快,并且较小的大小(32位对64位)导致更有效地使用高速缓存和数据传输带宽.


Bar*_*mar 8

整数运算是精确的。double是一种浮点数据类型,只要有小数,浮点运算就是近似值。

double还占用了int许多实现(例如大多数 32 位系统)中两倍的空间。