[Java]변수와 자료형 - 실수와 논리자료형

나영원·2020년 8월 24일
0

Java_basic

목록 보기
5/60

실수 자료형

public class DoubleTest {

	public static void main(String[] args) {
 
		double dNum = 3.14; 
		
		float fNum = 3.14F;
		
		System.out.println(dNum); // 3.14
		System.out.println(fNum); // 3.14
		
		
	}

}

자바에서 실수는 기본적으로 double을 자료형으로 사용합니다. => double dNum = 3.14;

다른 실수 자료형인 float도 사용할 수도 있는데 그때는 값뒤에 f, F 식별자 넣어서 사용해야 합니다.

부동 소수점

자바에서는 실수는 부동 소수점 방식을 사용하여 표현합니다.

부동 소수점 방식은 가수부부과 지수부를 따로 나누어서 저장하기 때문에 아주 넓은 범위에 실수를 표현 할 수 있지만 0을 제대로 표현 못하기에 약간의 오차가 생기는 문제가 있습니다.

public class DoubleTest2 {

	public static void main(String[] args) {

	   double dNum = 1;
	   
	   for(int i = 0; i <10000; i++) {
		   
		   dNum = dNum + 0.1;
	   }
	   System.out.println(dNum); //1001.000000000159

	}

}

위에 예제에서 dNum = 1001 이어야 하지만 소숫점자리수가 생기는 오차가 발생합니다. 이것이 부동소수점의 오차이지만 자바에서는 이 정도의 오차를 감수하고 더 넓은 실수범위를 표현할 수 있는 부동소수점 방식을 사용합니다.

논리자료형

수학에서의 명제와 같이 true, false 값만 나타내는 자료형입니다. 그래서 1byte만 사용는 자료형입니다.

public class BooleanTest {

	public static void main(String[] args) {
		boolean isMarried = false;
		System.out.println(isMarried); //false
		
		
		var i = 10;
		System.out.println(i); // 10

	}

}

논리자료형은 boolean 자료형으로 표현되고 그 값으로는 true와 false만 올 수 있습니다.

자료형 없이 변수를 사용하는 방법

자바와 같은 컴파일 언어는 항상 자료형을 명확히 쓰지만 자바10부터 지역변수(중괄호 안에서 선언되는 변수)의 한에서 지역 변수 자료형 추론(local variable type inference)으로 자료형 없이 변수를 선언 할 수 있습니다.

위에 var i = 10; 처럼 int가 아닌 var으로 변수를 선언해도 자바에서 알아서 int로 자료형을 추론하여 에러가 나지 않고 값이 출력되는 것을 볼 수 있습니다.

profile
배우는 개발 일기

0개의 댓글