float类型转换为long类型为什么要用强制类型转换

来源:4-4 编程练习

慕容2015448

2019-10-17 12:47:10

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 = 987654321L;
		//定义一个整型变量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 = (long)f;
	  System.out.println("l="+l);
	}
}


写回答

1回答

好帮手慕酷酷

2019-10-17

同学你好,代码编写的不错,因为在Java中,float类型的范围是:-3.403E38~3.403E38。而long类型的范围是:-2^63~2^63-1,所以float的范围要比long类型的范围大,所以会产生精度丢失,也就在进行float类型转换为long类型时需要强制类型转换。

具体如下:

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

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

0

0 学习 · 11489 问题

查看课程