좋습니다 이제 Integer(정수)가 Kotlin 내 4가지의 데이터 종류로 다뤄질 수 있다는 것을 배웠으니
이제는 Floating(부동소수점) 데이터 종류에 대해서 알아보겠습니다
이 페이지에서 조금 스크롤을 내리면 읽어보실 수 있습니다
이것도 여러 숫자들을 다루고 이런 식으로 설명되어 있습니다
하지만 저는 제 방식대로 설명드리려고 합니다
보시면 Float이라는 종류가 있고 32 bit의 데이터를 저장하며
Double이라는 종류는 64bit의 데이터를 저장합니다
여러분의 floating point(부동소수점) 값의 자릿수에 따라
Float을 쓸지 Double을 쓸지 달라집니다
좋습니다
하지만 기본적으로 Kotlin은 Double을 사용합니다
사용할 수 있는 메모리가 지나치게 많습니다
안전하게 넉넉한 범위의 종류를 사용하는 것은 문제가 되지
않습니다
이 경우 두 개뿐이기 때문에 Double이 가장 큰 선택지입니다
만약 Pi(원주율) 값을 3.14로 저장하려고 한다면 자동적으로
Double로 저장됩니다
여길 보시면 val one : Double = 1이라고 사용하면 오류가 발생한다고 쓰여있습니다
정수를 Double에 저장하면 데이터 종류가 맞지 않기 때문입니다
이 부분은 조금 있다가 다뤄보겠습니다
그전에 Float를 다루는 법부터 알려드리려고 합니다
만약 변수를 특정하게 Float로 사용하고 싶은데
따로
이런 식으로 정의하고 싶지 않다면 할당한 숫자옆에 f를 입력하면
자동으로 Float가 됩니다
하지만 보시다시피 Float 길이에 맞춰 숫자가 잘립니다
그러니까 길이 자체는 Double이지만 끝에 f를 붙혔기 때문에 Float로 저장됩니다
자
그러면
이를 프로그램 내에서 빠르게 테스해 해보겠습니다
지난 영상에서 이 myAge를 다뤘었습니다
이제는 지워주고 Float를 테스트해 볼 것입니다
이 코드를 전부 지워줍니다
그리고 새로운 val을 생성합니다
이름은 pi이고
값은 3.14입니다
좋습니다
그리고 println()을 사용해 pi를 출력해 보겠습니다
재실행하고 확인해 봅시다
3.14라고 출력됩니다
이번엔 pi에 마우스를 올려서 데이터 종류를 확인해 보겠습니다
데이터 종류가 Double인 것이 확인됩니다
자동으로 Double로 저장한 것입니다
만약 숫자 뒤에 f를 붙혀주면 Float 데이터가 됩니다
좋습니다
이렇게 f를 추가하는 방식으로 데이터 종류를 바꿀 수 있습니다
아니면 전에 봤던 것처럼 고지식한 방법을 사용해도 되지만
그 방법을 사용하더라도 뒤에 f를 추가해 주어야 합니다 그렇지 않으면
Double로 인식됩니다
자
보시다시피 이는 딱히 의미가 없으며 그저 f만 추가해 주면 Float로
인식합니다
만약 pi를 아주 긴 숫자로 재할당하려고 한다면 val이기 때문에 그렇게는 안 됩니다
그러니 수정하거나 바꾸고 싶다면 var를 사용해야 합니다
그러니까 예를 들어 3.14로 시작을 했는데 pi는 상수입니다
언제나 바뀌지 않지만 pi에 대해 저장되는 데이터의 양은 상수가 아닙니다
예를 들어 3.141591을 저장하려고 한다면
이것이 새로운 pi 값입니다
더 세밀한 값을 사용하려고
이 값으로 재할당했습니다
Pi의 을 검색해 보겠습니다
자
찾았습니다
열 번째까지만 사용하겠습니다
3.14149 다음
26
535입니다 그리고 보시다시피 회색빛의 밑줄이 생긴 것이 보입니다
요구된 정밀한 값은 floating point literal(부동 소수점 문법)으로 표시될 수 없다고 쓰여있습니다
그러니까 이 말은
제가 Pi에 할당한 값의 자릿수가 Float가 저장할 수 있는 값보다 크다는
뜻입니다
좋습니다
따라서 이 265 이후로 잘리며 나머지 부분이 7로 표시되는 것이 보입니다
가장 근접한 값 중 가장 적절한 다음 값을 넣습니다
그럼 다시 Pi를 출력해서 어떻게 되는지 확인해 보겠습니다
그리고 새로운 Pi가 이렇게 덜 정밀한 값으로 표시되는 것이 보입니다
범위를 넘어서는 부분을 그냥 잘라내는 것이 아니라
숫자를 반올림하여 잘라줍니다 하지만 Pi의 경우 이는 문제가 될 수 있습니다
Pi의 값은 그대로 정확해야 하기 때문입니다
그러니까 이런 경우는 f를 지워서 Double로 만들어 주면 됩니다
그러면 정확한 값이 나옵니다
그러니까 Double은 Float보다 더 정밀하다고 볼 수 있습니다
우리가 필요한 정확하고 정밀한 값을 다 표현해 줍니다
이런 식으로 부동소수점 값들을 다루는 데이터 종류들이 있다는 것을 아시면 됩니다
그리고 이번 영상은 여기까지입니다
다음 영상에서 뵙겠습니다
그리고 연습 과제들을 잊지 마시기 바랍니다
좋습니다
그럼 다음 영상에서 뵙겠습니다