我觉得是,在类型上,整形和浮点数不同,整数没有丢失精度之分,所以byte与int比较就会相等, 
int与double与float比较- public class java{
 
 -         public static void main(String[]args){
 
 -                 int a=2;
 
 -                 float b=2.0f;
 
 -                 double c=2.0;
 
 -                 if (a==b)
 
 -                 System.out.println("1Y");
 
 -                 else
 
 -                 System.out.println("1N");
 
 -                 if(a==c)
 
 -                 System.out.println("2Y");
 
 -                 else
 
 -                 System.out.println("2N");
 
 -         }
 
 - }
 
  复制代码 
1Y 
2Y 
 
byte类型 
- public class java{
 
 -         public static void main(String[]args){
 
 -                 byte a=2;
 
 -                 float b=2.0f;
 
 -                 double c=2.0;
 
 -                 if (a==b)
 
 -                 System.out.println("1Y");
 
 -                 else
 
 -                 System.out.println("1N");
 
 -                 if(a==c)
 
 -                 System.out.println("2Y");
 
 -                 else
 
 -                 System.out.println("2N");
 
 -         }
 
 - }
 
  复制代码 
1Y 
2Y 
 
但是对于小数之间会出现问题 
- public class java{
 
 -         public static void main(String[]args){
 
 -                 float b=2.0f;
 
 -                 double c=2.0;
 
 -                 if (b==c)
 
 -                 System.out.println("1Y");
 
 -                 else
 
 -                 System.out.println("1N");
 
 -         }
 
 - }
 
  复制代码 
1Y 
但是出现了小数位就会不同 
- public class java{
 
 -         public static void main(String[]args){
 
 -                 float b=2.1f;
 
 -                 double c=2.1;
 
 -                 if (b==c)
 
 -                 System.out.println("1Y");
 
 -                 else
 
 -                 System.out.println("1N");
 
 -         }
 
 - }
 
  复制代码 
1N 
这和类型之间的转换有关小类型会自动转换为大类型,整数位没有事,但是小数位会出现精度丢失, 
我就了解这些希望可以帮到你 
 |