코틀린에서의 숫자
오늘은 코틀린에서 숫자 타입은 각 타입에 따라서 어떻게 쓰이고, 저장되는지 살펴볼 예정이다.
[ 연산자 ]
- 기본 연산자 : 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%)를 제공
- 연산 순서 : 기본 산술 연산 순서를 따름
[ 정수의 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 |