public class FromIntToFloat {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num1 = 123456780;
int num2 = 123456780;
float num3 = num2;
num2 = (int)num3;
int result = num1 - num2;
System.out.println(result); // -4
}
}
int 값을 float 타입으로 자동 변환하면서 문제가 발생했기 때문에
실행 결과를 보면 0이 나오질 않았다.
따라서 정밀도 손상이 발생한다.
public class FromIntToDouble {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num1 = 123456780;
int num2 = 123456780;
double num3 = num2;
num2 = (int)num3;
int result = num1 - num2;
System.out.println(result); // 0
}
}
모든 int 값을 실수 타입으로 안전하게 변환시키기 위해서는
double 타입을 사용해야 한다.
public class CompareOperatorExample2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int v2 = 1;
double v3 = 1.0;
System.out.println(v2 == v3); // true
double v4 = 0.1;
float v5 = 0.1f;
System.out.println(v4 == v5); // false
System.out.println((float)v4 == v5); // true
System.out.println(v4 == (double)v5); // false
}
}
실수 값 비교 시 모든 연산자를 float 타입으로 변환 후 비교