int和float的区别
「int和float的区别」指的是编程中两种最常用的数值类型——整数类型和浮点数类型——在表示范围、存储方式和运算行为上的不同。它和写代码时如何存数字、做计算、避免算错结果直接相关。
基本含义与用途
int(整数类型)用来表示没有小数部分的数,比如人数、次数、序号,通常按二进制整数存储,运算精确。float(浮点数类型)用来表示带小数的数,比如身高、温度、比例,它按科学计数法式的结构存储,能表示很大或很小的范围,但很多小数无法精确表示。简单说:需要精确计数用int,需要连续量或小数用float。
常见问题
最典型的问题是浮点数精度误差:0.1加0.2在float里可能不等于0.3,直接用等号比较会出错。其次是整数除法:两个int相除,结果可能被截断成整数,丢掉小数部分。还有溢出问题:int能表示的范围有限,超过上限会回绕或报错;float范围大,但有效数字位数有限,大数加小数可能“加不动”。另外,把float强制转成int会直接截断小数,而不是四舍五入。
怎么判断或怎么选
先问自己:这个数需要精确相等吗?需要计数、索引、金额的最小单位(如分)吗?如果是,选int。如果表示测量值、比例、科学计算,允许微小误差,选float。比较float时不要用等号,而是看差值是否小于一个很小的阈值。做除法想保留小数时,先把其中一个数转成float。涉及金额又要求精确时,常用整数存最小单位,避免浮点误差。