首先来看张图 那么问题来了, long 8 字节, 而float 只有 4 字节,那么类型转换的时候会发生窄化嘛? 并不会 如下图所示 这里值得注意的是: 可以把一个较小的整数值(在int类型的表述范围以内)直接赋给一个long类型的变量,这并不是因为Java会把这个较小的整数值当成long类型来处理,Java依然把这个整数值当成int类型来处理,只是因为int类型的值会自动类型转换到long类型。 Java语言的浮点数有两种表示形式: 十进制数形式 科学计数法形式 答案如下: