• 中文
    • English
  • 注册
  • 查看作者
    • Java中定义float变量时,为什么必须加f?

      今天舍友问到的一个小问题,也是很多同学在初学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;//并不会报错,因为编译器会帮你做类型转换
      	}
      }

      参考资料:

      lonrence

       

    • 0
    • 0
    • 0
    • 5.5k
    • 请登录之后再进行评论

      登录

      赞助本站

      • 支付宝
      • 微信
      • QQ

      感谢一直支持本站的所有人!

      单栏布局 侧栏位置: