![](/img/trans.png)
[英]What is the difference between double a = a + int b and int a += double b?
[英]Difference between int and double
为什么有人会使用int而不是double ?
似乎 double 比int灵活得多。
int
和double
具有不同的语义。 考虑分工。 1/2
是0
, 1.0/2.0
是0.5
。 在任何给定的情况下,其中一个答案是对的,另一个是错的。
也就是说,有一些编程语言,例如 JavaScript,其中 64 位浮点数是唯一的数字数据类型。 您必须显式截断一些除法结果才能获得与 Java int
相同的语义。 Java 等支持整数类型的语言可以自动截断整数变量。
除了具有与double
不同的语义外, int
算术通常更快,并且较小的大小(32 位与 64 位)可以更有效地使用缓存和数据传输带宽。
整数运算是精确的。 double
是浮点数据类型,只要有分数,浮点运算就是近似的。
在许多实现(例如大多数 32 位系统)中, double
占用的空间也是int
的两倍。
int 是整数的二进制表示,double 是双精度浮点数。
简短的回答:
int
使用四个字节的内存(它不能包含小数),而double
使用八个字节的内存。 只是有不同的工具用于不同的目的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.