2017-02-12 76 views
-1

我正在学习java,并在其中创建一些简单的测试程序和笔记,我收到一个错误,说“短语shortVal = val5 + val6不兼容的类型:从int到short可能的有损转换”;我看了,这个错误意味着我试图把一个int值放入一个简短的变量,但我存储在短的值只有27,所以我有点困惑什么是错的。为什么我得到不兼容的类型错误?

public class test{ 
    public static void main(String[] args){ 
     double val1=4; 
     float val2=9; 
     long val3=30; 
     int val4= 8; 
     short val5= 15; 
     short val6=12; 
     byte val7=20; 
     short shortVal= val5 + val6; //why the error here? 
    } 
} 
+1

更精确副本:http://stackoverflow.com/questions/5919423/why-am-i-getting-a-warning-about-possible-loss- java中的精度 –

+0

http://stackoverflow.com/questions/477750/primitive-type-short-casting-in-java – shmosel

+0

请[**彻底搜索**](/ search?q =%5Bjava% 5D +不兼容+类型%3A +可能+有损+转换+从+ int +到+短)在发布之前。更多关于搜索[这里](/帮助/搜索)。 –

回答

1

short + short结果是,有些矛盾的是,int。因此,您正试图将int分配给short变量(shortVal)。

1

short + short将导致int。你需要一个int变量来存储结果:

int shortVal = val5 + val6; 
相关问题