Mark's Java Blog
MyEclipse, Java EE, Spring, Struts, Hibernate, JPA, SWT, Swing, AJAX, JavaScript,SOA
突然有人问起,自己做了些测验,把结果记录下来。

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类型相互作加减操作都会出现精度缺失;
+=符号做运算不牵扯类型转换问题,按照负值对象的类型返回。

posted on 2008-05-09 11:44 Mark 阅读(513) 评论(0)  编辑  收藏 所属分类: Java SE

只有注册用户登录后才能发表评论。


网站导航: