글 작성자: 취업중인 피터팬
728x90
기본 환경
JDK : 1.8.0_261 버전
JRE : 1.8.0_261 버전
JAVA VERSION : 8 업데이트 261
Eclipse IDE VERSION : 2020-06버전

 

목표

Java에서 사용하는 실수 자료형에 대해 이해한다.

 

 


코드
package ex02variable;

public class E02SilsuType {

	public static void main(String[] args) {
		
		/*
		 실수 자료형
		 -정수형보다는 실수형이 더 큰 자료형이다.(0과 1사이에
		 무수히 많은 실수가 존재하기 때문에)
		 -따라서 long과 float를 연산하면 결과는 float가 된다.
		 */
		
		long long1 = 100;
		float float1 = 200;
		float result1 = long1 + float1;
		System.out.println("long1 + float1 = " + result1);
		
		/*
		 float와 long의 연산결과를 long으로 받고 싶다면..
		 방법 1 : float를 long으로 형변환 후 연산하거나
		 방법 2 : 계산결과 전체를 long형으로 명시적(강제) 형변환한다.
		 */
		
		long result2 = long1 + (long)float1;
		System.out.println("형변환후 연산 = " + result2);
		long result3 = (long)(long1 + float1);
		System.out.println("계산후 형변환 =" + result3);
		
		/*
		 -실수형에서 기본형은 double이다.
		 -소수점이 있는 데이터를 컴파일러는 모조건 double로 인식한다.
		 -단, 소수점이 없는 데이터는 float에 대입할수 있다.
		 -소수점이 있는 데이터를 float에 대입하려면 접미사(f or F)를 사용한다.
		 - 형변환도 가능하지만 Java에서는 권장하지 않는다.
		 */
		float f3 = 100;
		
		//float f4 = 3.14; => 에러발생 3.14자체를 double형으로 인식함.
		float f4 = (float)3.14;
		System.out.println("f4="+ f4);
		
		float f5 = 3.14F;
		System.out.println("f5 = " + f5);
		
		float f6 = f3 + f4;
		System.out.println("f6 = " + f6);
		
		double d1 = 3.14;
		double d2 = f6 + d1;// float + double = double(큰쪽을 따라감)
		System.out.println("d2 = " + d2);
	}

}

 실수형의 기본 형은 double이다. 파이썬과 flutter을 중점으로 공부한 나는 실수형의 기본 자료형이 double이라고 해서 float에 실수를 초기화 하기 위해서 리터럴해야 한다는 사실에 꽤 충격을 받았다. 자세한 내용은 역시 주석에 달아놨다.

 

결과 값