整数和双精度值之间的差异

2022-09-03 09:11:56

为什么有人会使用int而不是double

似乎双精度比int灵活得多。


答案 1

int并具有不同的语义。考虑划分。 是 ,是 。在任何特定情况下,其中一个答案将是正确的,另一个是错误的。double1/201.0/2.00.5

也就是说,有些编程语言,如JavaScript,其中64位浮点数是唯一的数字数据类型。您必须显式截断一些除法结果才能获得与 Java 相同的语义。支持整数类型的 Java 等语言使整数变量的截断自动生效。int

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


答案 2

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

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