今天舍友问到的一个小问题,也是很多同学在初学Java中,都会碰到的一个问题
首先,我们查看代码的报错举例
package tv.zhangjia.FloatDemo; public class Test { public static void main(String[] args) { double d = 1.2; float f = 1.2;//编译报错:Type mismatch: cannot convert from double to float: //类型不匹配:无法从double转换为float } }
为什么会报错呢?是因为你在做赋值运算的时候其实等号两边的类型都是确定的,能赋值成功,而浮点类型默认是double,但是由于float类型和double类型在内存中的二进制表现形式不同,不能像整形那样有时会默认转换,必须要确定类型,带上f
但是注意,并不是说,定义float变量时,必须加f
如下例,并不会报错
package tv.zhangjia.FloatDemo; public class Test { public static void main(String[] args) { double d = 1.2; float f = 1;//并不会报错,因为编译器会帮你做类型转换 } }
参考资料:
请登录之后再进行评论