Multiple markers at this line

Multiple markers at this line

//定义一个长整型变量l,值为987654321
        long l=987654321;
        //定义一个整型变量i,赋值为l,并输出i的值
        int i=1;
        System.out.println("i="+i);
        //定义一个float类型变量f,将变量l的值赋值给f,并输出f的值
         float f=l;
         System.out.println("f="+f);
        //将float的值f,重新赋值给变量l,并输出l的值
      l=f;
    System.out.println("l="+l);

Multiple markers at this line
    - Type mismatch: cannot convert from float
     to long
    - Type mismatch: cannot convert from float
     to int


请问我需要怎么修改?为什么

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

意思是不能直接将float类型数据赋值long,以及不能直接将float赋值int,使用的时候需要强制类型转换,譬如,f=(float)l;

  • 音殿 提问者 #1
    float类型不是比long短 不是会隐式类型转换吗
    2017-04-02 13:30:44
  • 好帮手慕珊 回复 提问者 音殿 #2
    float比long表示的数据范围要大
    2017-04-05 11:10:08
  • Special994 回复 提问者 音殿 #3
    float能隐式转换到double
    2017-09-01 18:11:32
牛津小学徒 2017-04-03 12:46:27

float类型不能直接赋值给long,需要强制转换,如l=(long)f;所以是赋值出现问题

没有马甲线的安琪拉 2017-04-02 16:19:52

视频中代码是啥,学过时间挺长了,没印象了

没有马甲线的安琪拉 2017-04-02 15:04:11

可是float有精度要求啊

  • 提问者 音殿 #1
    那视频中隐式转换时没有报错 我这个问题区别是在哪里呢?
    2017-04-02 15:45:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师