class Test5
{
public static void main(String[] args)
{
short a='a';
char b=a;
}
}--------------------
编译时提示char b=a 可能损失精度,为什么不提示short a='a'会损失精度?
{
public static void main(String[] args)
{
short a='a';
char b=a;
}
}--------------------
编译时提示char b=a 可能损失精度,为什么不提示short a='a'会损失精度?
解决方案 »
- 采用JNI对读写器SDK的DLL进行再封装 难不难?
- 在java中有那些组件可以显示图片啊?
- 有谁帮我看看这个游戏出错在哪了?为什么设置了ActionListener,KeyListener就不行了?
- 怎么创建文件,保存,读取 一个数组a[8][8]?
- 10个对象有属性一起提交怎么保存数据库,用JDBC
- 上次给朋友散分,被管理员封了帐号,今天重见阳光,散点分
- 如何在一个panel上面,根据鼠标移动的位置,动态的创建一个文本框!!!!
- 谁有jbulider7的教程?有分
- JCreator问题:可这个问题可能要转业一点的人才能回答
- 菜鸟求救!!!
- 如何求一个int型数的绝对值?
- jTabbedPane的选项卡不能设为圆角吗?
但是char最小值Unicode 0 最大值 Unicode 2^16-1
short最小值-32768 最大值32767
short s = 9;
char c =10;
s = c;E:\java>javac TestPerson.java
TestPerson.java:34: 可能损失精度
找到: char
需要: short
s = c;
^
1 错误E:\java>
char-->int-->long-->float-->double
你把代码改为这样试试,会不会提示?
class Test5 {
public static void main(String[] args) {
char b = 'b';
short a = b;;
}
}
class Test5 {
public static void main(String[] args) {
char b = 'b';
short a = b;;
}
}
char a=-'a';
short b=-'a';
“char a=-'a'”-----提示:可能损失精度
找到: int
需要: char
char a=-'a'; 那 -'a' 是int类型了,short b=-'a' 也编译有问题呀,因将int赋值给short,如果真是这样,那short还怎样赋值?编译器提示“可能损失精度”,往往是类型可能容不下数据,即有可能超出范围,如“char a=-'a'”就是超出范围了,故有提示。char和short大小都是16bit,但范围不同,互相包容不了。
char a='b';int b=a;--- 可以,因int容得下char。