突然有人问起,自己做了些测验,把结果记录下来。
java的几种数值基本类型:int,short,long,float,double
测试代码:
public static void main(String[] args) {
short x = 100;
long b = 2;
int a = 2;
double y=1.1;
float z=(float) 1.2;
double c=1.1;
float d=(float) 1.2;
a=x+a;
x+=1.1;
b=b+a;
y=y-1;
z=z-1;
c=c+1;
d=d+1;
System.out.println(a);
System.out.println(x);
System.out.println(b);
System.out.println(z);
System.out.println(y);
System.out.println(c);
System.out.println(d);
c=c+d;
System.out.println(c);
c=c-d;
System.out.println(c);
d=(float) (d-1.1);
System.out.println(d);
}
运行结果:
102
101
104
0.20000005
0.10000000000000009
2.1
2.2
4.3000000476837155
2.0999999999999996
1.1
测试说明:
不同类型数据做计算时按照计算中最大范围数据类型返回,例如:a=x+a;(如果负值对象是较小范围的类型就需要强转类型,否则会报错)
double类型做加时运算精度准确,做减运算时有精度偏差,且和float类型相互作加减操作都会出现精度缺失;
+=符号做运算不牵扯类型转换问题,按照负值对象的类型返回。