javaj、条件判断中值精度问题
条件判断时很容易忽略的问题就是数据精度,引起我思考这个问题是由于下面的代码
private double pi=Math.PI; private double rockangle=pi/4; private double addangle=pi/36; private int a=1;for(int i=0;i<500;i++){ if(a==1){ rockangle=rockangle+addangle; if(rockangle==pi/3){ a=2; System.out.println("111111111111111111");}} if(a==2){rockangle=rockangle-addangle;if(rockangle==pi/6){ a=1; System.out.println("222222222222222222");}System.out.println("rockangle="+rockange);}} public static void main(String[] args) { //float和float 小数点后七位 //double和double 小数点后16位 //double 和 float比较 小数点后可以有0 但是不能有其他值 否则为不相等 double a=1.340000789; double b=1.340000345;if(a==b){System.out.println("相等");}else{System.out.println("不相等");}}public static void main(String[] args) { float a=1.00000000f; double b=1.00000000;if(a==b){System.out.println("相等");}else{System.out.println("不相等");}}