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

来源:4-4 编程练习

weixin_宝慕林1551746

2019-12-05 17:54:01

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;为什么这里要强制执行呢

写回答

2回答

好帮手慕小脸

2019-12-06

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

http://img.mukewang.com/climg/5de9d4ff09daf51e14940792.jpg

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

0

好帮手慕小脸

2019-12-05

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

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

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

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

0
heixin_宝慕林1551746
h 他们之间应该是相交的关系,而不是包含的关系,所以说long转float也是要强制转换的。
h019-12-05
共1条回复

0 学习 · 11489 问题

查看课程