double和int
「double和int」是编程中两种常见的数据类型名称,主要出现在 C、C++、Java、C# 等语言里。它们都和“数字怎么存、怎么算”有关,一个偏向整数,一个偏向带小数的数值。
基本含义与用途
int 表示整数类型,用来存没有小数部分的数,比如人数、次数、编号。它通常占用固定字节数,运算直接、速度快。double 表示双精度浮点类型,用来存带小数的数,比如长度、比例、平均值。它用近似方式表示实数,能覆盖很大的范围,但并不是每个小数都能精确存下。
常见问题
最常见的问题是整数除法:两个 int 相除,结果会丢掉小数部分。比如想算平均分,如果分子分母都是 int,可能得到被截断的整数。另一个问题是精度:double 存 0.1 这类数时只是近似值,多次累加后可能出现微小误差,直接用等号比较两个 double 往往不可靠。还有溢出问题,int 超出范围会回绕或报错,而 double 范围大得多,但有效数字位数有限。
怎么判断或怎么选
看数据本身要不要小数:只数个数、做下标、表示编号,用 int;涉及测量、比例、科学计算,用 double。看运算需求:需要保留小数结果时,至少让参与运算的一个数是 double,避免整数除法截断。比较 double 时,通常判断两者差值是否小于一个很小的容差,而不是直接相等。涉及金额等要求精确的场景,一般不用 double 直接累加,而改用整数最小单位或专门的高精度类型。