编程练习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需要强转哦!

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


0

慕UI1055113

2019-05-07

float转换成long需要强制转换,long类型转换为float默认会自动转换。

0
hngche
h long类型的存储数值的字节是8个字节,float是4个字节,请问为什么4个字节的数值放在8个字节的存储空间内需要强制转换呢?
h019-05-07
共1条回复

0 学习 · 11489 问题

查看课程