本帖最后由 pengfangjava 于 2012-2-17 20:54 编辑
Noword 发表于 2012-2-17 20:35
那能不能把6定义为short值再与s相加?这样对于这个案例来说得到的结果就不会丢失精度了为什么没人回答呢? ...
不行的
short a,b,c;
a=1;
b=2;
c=a+b; // Type mismatch
java默认输入的数字是int类型,将会进行int类型的计算。
因此你在运算完的时候可以强转:
a=1;
b=2;
c=(short)(a+b);
由于long型容量比int还要大,所以给long型变量赋值的时候,java给了一种可以指定类型的赋值,可以写成如下:
long a,b,c;
a=1L;
b=2L
c=a+b;
或者
long a,b,c;
a=1;
b=2;
c=(long)(a+b); |