编程练习float转为long丢失精度
来源:4-4 编程练习
Angche
2019-05-06 19:14:36
// 将一个整型字面值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是将float转换成long型,为啥会丢失精度呢?
Type mismatch: cannot convert from float to long
2回答
好帮手慕小班
2019-05-07
同学你好,在java中,因为float采用了科学计数法,虽然使用的字节少了,但是表示的范围是大于long的,所以将范围比较大的float转为范围比较小的long需要强转哦!
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
慕UI1055113
2019-05-07
float转换成long需要强制转换,long类型转换为float默认会自动转换。
相似问题