
这是个非常基础的问题了。
int 是整数类型,float 和double是浮点数类型。
一般来说,float 与double区别不大(使用上来说)。
只不过double使用了更多的内存空间来储存数据(一般一个double占8个字节,一个float占4个字节)。使用更多内存空间的优点在于,一方面精度更高,另一方面是数据范围更广。
通常来讲,int 和double(或 float) 应该区分来用。
如果上述两种类型出现在同一个表达式中,那么将会逐步向最高级别的数据类型转换。
比如
(1 + 3)显然是int 类型的,结果为4。然后再进行后续计算时,遇到了double的4.5,那么将会把4转换为double 再进行运算,即变成4.0 + 4.5,最后表达式结果为double 的 8.5。
注意到float类型也是4字节,也有直接把float数据块看作是一个int数据块来处理的操作。
比如,在一段快速计算根号倒数的大神级代码
另外一个例子是使float也可以使用异或运算来交换两个变量,具体的可以看我微信公众号文章
