예거's Bicycle for the mind

[Swift] 큰 숫자를 다룰 때 underscore(_)를 이용해 자릿수 표기하는 법 본문

iOS & Swift

[Swift] 큰 숫자를 다룰 때 underscore(_)를 이용해 자릿수 표기하는 법

유예거 2021. 10. 10. 18:30

'456억 원' 이라는 큰 숫자를 Int 타입으로 써보자.

// 큰 숫자는 가독성(Readability)이 떨어진다.
var bigNumber: Int = 45600000000
print(bigNumber - 10000)
// 45599990000

 

이렇게 매우 큰 숫자는, 코드에서 가독성(Readability)이 떨어진다. 읽기가 불편하다. 시간이 조금 더 걸린다.

코드가 아니라, 일반적인 환경에서는 우린 콤마(,)를 활용해 숫자의 자릿수 구분을 할 수 있다.

456억 원은 45,600,000,000 원으로 표시할 수 있다.

 

하지만 코드에서는 숫자 사이에 콤마(,)를 넣을 수 없다.

 

// 숫자 사이에 콤마(,)를 넣을 순 없다.
var bigNumber: Int = 45,600,000,000
// error: expected pattern

 

코드에서 숫자 사이에 콤마(,)를 넣으면 컴파일 에러가 뜬다.

expected pattern, 즉 코드에서 Int 를 다루는 데 사용하는 표기법이 아니라는 에러다.

그렇다면, 코드에서는 어떻게 큰 수의 자릿수 표기를 할 수 있을까?

 

우리는 콤마(,) 대신 언더스코어(_) 를 자릿수 표기를 위해 사용할 수 있다.

// 코드에서는 큰 숫자의 자릿수 표시를 콤마(,) 대신 언더스코어(_)로 할 수 있다.
var bigNumber: Int = 45_600_000_000
print(bigNumber - 10_000)
// 45599990000 -> 언더스코어로 자릿수 표시를 했다고, 리턴값도 언더스코어가 달려 나오는 건 아니다.

 

위 예시와 같은 방법으로, 언더스코어(_)로 자릿수 표기를 할 수 있다.

코드가 작동할 때, 언더스코어는 '마치 없는 것처럼' 작동한다.

그 말은, 리턴값에는 언더스코어가 달려 나오지도 않고, 언더스코어가 이상하게 붙어 있더라도, 코드가 작동하는 데 문제는 없다는 말이다.

 

// 언더스코어(_)가 이상하게 들어가도 코드가 작동하는 데 문제는 없다.
var bigNumber: Int = 456_00000_000
print(bigNumber - 1_0_0_0_0)
// 45599990000

 

하지만 언더스코어를 엄한 곳에 표기해두면, 오히려 가독성을 해치기 때문에

정확하게 사용하는 것이 아니라면, 순정 그대로 쓰는 게 낫겠다는 생각이 든다.

 

* 참고) _ 의 영문 명칭은 underbar 가 아니라, underscore 가 정확한 명칭이다.

Comments