본문 바로가기

공부 자료/코틀린[Kotlin]

[Atomic 09] 수 타입

 

코틀린에서의 숫자

 

오늘은 코틀린에서 숫자 타입은 각 타입에 따라서 어떻게 쓰이고, 저장되는지 살펴볼 예정이다.

 

 


 

[ 연산자 ]

 

- 기본 연산자 : 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%)를 제공

- 연산 순서 : 기본 산술 연산 순서를 따름

 

 


 

[ 정수의 MAX_Value ]

 

정수의 값으로는 Int와 Long이 있는데 이 정수들의 값의 범위는 어떻게 될까?

 

- Int : -2^31 ~ +2^31-1 사이의 값 저장

- Long : -2^63 ~ +2^63-1 사이의 값 저장

 

 

만약 계산 도중 해당 값의 범위를 넘어가게 된다면?

 

fun main(){
	val a:Int = Int.MAX_VALUE
    println(a+1) // 결과 : -2
}

 

- 해당 경우에는 넘침 현상이 일어난 결과를 얻게 됨

- 넘침이 발생할 경우 음수이면서 예상보다 훨씬 작은 값이 나와 명확히 틀린 결과를 도출함

- 코틀린에서 넘침이 발생할 가능성을 표시해 주기는 하지만, 넘침을 방지해 주지는 않음

 

 


[ 계산에서의 데이터 추론 ]

 

fun main(){
	val a:Int = 19
    val b:Int = 10
    println(a/b) // 결과 : 1
}

fun main(){
	val c:Double = 19.0
    val d:Double = 10.0
    println(c/d) // 결과 : 1.9
}

 

- 정수끼리의 나눗셈을 계산할 경우 결과는 정수로 데이터가 추론되고, 나머지는 버림이 됨

- Double은 아주 큰 부동소수점과 아주 작은 부동소수점 수를 저장할 수 있기 때문에 출력 결과도 Double이 됨

 

- 계산에 Double이 있다면 해당 계산 결과를 Double로 강제로 변환하는 효과가 있음을 알고 복잡한 계산 시 계산 순서를 잘 배치해 작성하는 것이 좋음

 

 


 

[ 오늘의 학습 소감 ]

 

분명 코틀린을 처음 시작해 var / val을 배울때만 해도 데이터의 타입에 대한 것이 크게 없다고 생각했는데, 그것은 나의 틀린 예상이었다. 오늘은 데이터 타입 중 숫자와 관련된 학습을 진행하였는데, 이 또한 다른 언어에서 쉽게 접할 수 있는 부분을 코틀린으로 배운것이기 때문에 학습에 큰 어려움은 없었다. 오늘 하나 알게 된 것이라면 Int.MAX_VALUE / Long.MAX_VALUE 가 각 데이터 타입에서 나타낼 수 있는 수 중 가장 큰 수를 의미한다는 것이었다.

 

 

 

'공부 자료 > 코틀린[Kotlin]' 카테고리의 다른 글

[Atomic 11] while로 반복하기  (0) 2024.01.10
[Atomic 10] 불리언(Boolean)  (0) 2024.01.09
[Atomic 08] 문자열 템플릿  (0) 2024.01.07
[Atomic 07] if 식  (0) 2024.01.06
[Atomic 06] 함수  (0) 2024.01.05