我觉得是,在类型上,整形和浮点数不同,整数没有丢失精度之分,所以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
这和类型之间的转换有关小类型会自动转换为大类型,整数位没有事,但是小数位会出现精度丢失,
我就了解这些希望可以帮到你
|