3-21节编程问题
来源:3-21 编程练习
不想睡觉的橘子君
2019-08-07 19:00:44
我的代码如下
public class TypeExchange {
public static void main(String[] args) {
int n = 98;
// 定义一个整型变量n,值为98
char ch;
ch = n;
System.out.println(ch);
//定义一个char类型的变量ch,将变量n赋值给ch,然后输出ch的值
long var = 190000000;
System.out.println(var);
//定义一个长整型变量var,值为190000000,并输出
double d = var;
//定义一个double类型的变量d,将变量var的值赋值给d
}
}
第一个问题,会存在不能将int型赋值给char型变量的问题,不知道为什么char类型的变量ch没有输出ASC码98对应的字母
第二个问题,在将长整形变量var初始化的时候使用科学计数法 long var = 1.9e8; 会出错,而直接初始化为190000000就没有问题
1回答
好帮手慕小班
2019-08-07
同学你好,1、这里不是说不能将int型赋值给char型变量的问题,而是将一个int类型的变量赋值给char类型,需要强转,原因是:
首先我们来看一下int和char所能代表的数据范围: int 4字节 -2^31~2^31-1也就是-2147483648到2147483647,而char 2字节 是一个单一的16位字符 ,取值范围是从0到65535!所以一个int类型的值转为char类型的值,需要强转!
而强转是要以char ch =(char)n; 这样的形式来写呐!

2、在java中科学计数法是用来表示浮点型数据,1.9e8默认是double类型的数据,将这个double类型值将赋值给long类型,是需要强转的!所以这里建议使用long var = 190000000L;来为var声明赋值!
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题