Java 中 float 和 double 有什么区别
float 是单精度浮点数,占用 4 字节(32位),有效数字约 7 位;double 是双精度浮点数,占用 8 字节(64位),有效数字约 15-17 位。在 java 中,默认的小数常量(如 3.14)会被视为 double 类型,若需赋值给 float 变量必须显式添加 f 后缀或进行强制类型转换。

如何正确声明和初始化 float 与 double 变量
要正确声明这两个类型,只需在变量名前加上对应的关键字,并在初始化时注意字面量的类型匹配。对于 double,直接写数字即可;对于 float,必须在数字后追加 'f' 或 'F',否则编译器会报错,因为 Java 默认将小数解析为 double。

public class FloatDoubleDemo { public static void main(String[] args) { // 正确:double 默认支持小数字面量 double d = 3.14; // 正确:float 需要显式后缀 'f' float f = 3.14f; // 错误示例(编译失败):// float bad = 3.14; // 提示: 不兼容的类型: 从double转换到float可能会有损失 System.out.println("Float size: " + Float.BYTES + " bytes"); System.out.println("Double size: " + Double.BYTES + " bytes"); }}
float 和 double 在精度计算中的具体表现差异
由于 IEEE 754 标准的限制,这两种类型都无法精确表示某些十进制小数(如 0.1)。但在实际运算中,double 的误差范围远小于 float。当涉及金融计算或对精度要求极高的场景时,通常不建议直接使用这两者,而应使用 BigDecimal,但若必须在两者中选择,double 是更优解,因为其相对误差更小。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











