float到long是不能自动转换的吗

float到long是不能自动转换的吗

public class TypeExchange {

    public static void main(String[] args) {

// 将一个整型字面值67832赋值给char类型变量c

//并将c的值输出

char c=(char)67832;

System.out.println("c="+c);

//定义一个整型变量n,值为65

int n=65;

//定义一个字符型变量c1,赋值为n,并输出c1的值

char c1=(char)n;

System.out.println("c1="+c1);

//定义一个长整型变量l,值为987654321

long l=987654321;

//定义一个整型变量i,赋值为l,并输出i的值

    int i=(int)l;

    System.out.println("i="+i);

    

    //定义一个float类型变量f,将变量l的值赋值给f,并输出f的值

    float f=(float)l;

    System.out.println("f="+f);

    //将float的值f,重新赋值给变量l,并输出l的值

    l=f;

    System.out.println("l="+l);

}

}

报错。l=f;为什么这里要强制执行呢

正在回答 回答被采纳积分+1

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

2回答
好帮手慕小脸 2019-12-06 12:12:37

long转float不需要强制类型转换;如下图是可以自动转换的,除此之外的数据转换需要强制转换。

http://img1.sycdn.imooc.com//climg/5de9d4ff09daf51e14940792.jpg

如果我解决了你的疑惑,请采纳!祝学习愉快~

好帮手慕小脸 2019-12-05 19:01:17

同学,你好,float不能自动转换为long类型,因为float类型表示范围大于long类型,把float类型赋值为long类型,所以需要进行强制类型的转换。

具体类型转换问题可参考《步骤一:java基本语法》的java常量与变量

https://class.imooc.com/lesson/976#mid=23221

如果我的回答解决了你的疑惑,请采纳!祝学习愉快

  • 他们之间应该是相交的关系,而不是包含的关系,所以说long转float也是要强制转换的。
    2019-12-05 19:35:39
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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