当前位置: 技术问答>java相关
错在那里???
来源: 互联网 发布时间:2017-03-12
本文导语: public class e2 { public static void main(String[] args) { int i=10; short j; int k=j; j=i; System.out.println(j); } } | 很简单,可能导致精度的缺失 short在java中是2字节,而int是4字节类型,你把一个int型的数据...
public class e2
{
public static void main(String[] args)
{
int i=10;
short j;
int k=j;
j=i;
System.out.println(j);
}
}
{
public static void main(String[] args)
{
int i=10;
short j;
int k=j;
j=i;
System.out.println(j);
}
}
|
很简单,可能导致精度的缺失
short在java中是2字节,而int是4字节类型,你把一个int型的数据转化到一个short,就有可能出项精度丢失。
如果你的int型数据值大于short的最大或者最小表示范围就会发生的。
如你的int为100000,而short的表示范围为(-32768---32767)
short在java中是2字节,而int是4字节类型,你把一个int型的数据转化到一个short,就有可能出项精度丢失。
如果你的int型数据值大于short的最大或者最小表示范围就会发生的。
如你的int为100000,而short的表示范围为(-32768---32767)
|
public class e2
{
public static void main(String[] args)
{
int i=10;//4 bytes
short j; //2 bytes
int k=j;//应该使用short默认值,要么报错j没有初始化
j=i;//出错,从小转大可以,否则要使用(int)
System.out.println(j);
}
}
{
public static void main(String[] args)
{
int i=10;//4 bytes
short j; //2 bytes
int k=j;//应该使用short默认值,要么报错j没有初始化
j=i;//出错,从小转大可以,否则要使用(int)
System.out.println(j);
}
}
|
在你没有初始化j的情况下,就用j来给k赋值,这里是错误的。
还有就是j=i;有可能造成精度损失
还有就是j=i;有可能造成精度损失
|
类成员可以先不初始化,但方法里的变量必须初始化
|
short和int要求的位数不同需进行强制转换并且j需要初始化
|
up
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。