- 정수(Integers) : 소수점을 가지지 않는 범위의 수. signed(+,0,-)와 unsigned(+,0)으로 구분할 수 있다.
- 정수 범위(Integer Bounds) :
.min
,.max
프로퍼티로 해당 타입의 최소/최대값을 불러올 수 있다.- Int : 음수 ~ 양수 범위를 가지는 정수 타입
- UInt : 0 ~ 양수 범위를 가지는 정수 타입
- 각 정수 타입은 같은 크기의 범위를 가진다.
ex) Int :-2,147,483,648
~2,147,483,647
, UInt :0
~4,294,967,295
- 부동소수점숫자 : 소수점을 가지는 범위의 수. 소수점 범위에 따라
Double
,Float
으로 나뉜다.
- Double : 64-bit 부동소수점. 15자리 소수점 정확도를 가진다.
- Float : 32-bit 부동소수점. 6자리 소수점 정확도를 가진다.
- 대부분의 경우
Double
타입을 사용하는 것이 선호된다.
정수(Integers)는 42
와 -23
과 같은 분수가 아닌 숫자들을 말합니다. 정수는 부호가 있는 정수(signed)(양수,0,음수)또는 부호가 없는 정수(Unsigned)(양수 또는 0)이 있습니다.
Swift는 8, 16, 32, 64 비트 형태의 부호가 있는 정수와 부호가 없는 정수를 지원합니다. 각 비트를 지원하는 타입의 이름은 부호가 없는 타입(Unsigned) - UInt8
, UInt16
, UInt32
, UInt64
, 부호가 있는 타입(Signed) - Int8
, Int16
, Int32
, Int64
처럼 이루어져 있으며, 항상 첫글자는 대문자로 시작합니다.
각 정수 타입의 min
과 max
프로퍼티를 통해 각 정수 타입의 최소값과 최대값을 가져올 수 있습니다.
let minValue = UInt8.min // 부호가 없는 8비트 정수타입의 최소값은 0입니다.
let maxValue = UInt8.max // 부호가 없는 8비트 정수타입의 최대값은 255입니다.
이러한 프로퍼티의 값은 적절한 크기의 숫자 타입(위 예시에서 UInt8
)이므로 동일한 타입의 다른 값과 함께 표현식에 사용될 수 있습니다.
대부분의 경우 코드에서 사용할 정수의 특정 사이즈를 결정할 필요는 없습니다. Swift는 현재 플랫폼의 네이티브 사이즈와 같은 Int
인 정수 타입을 제공합니다.
Int
는 Int32
와 같은 크기를 가짐Int
는 Int64
와 같은 크기를 가짐특정 크기의 정수로 작업해야 하는 경우가 아니라면 항상 코드의 정수 값을 사용할 때, Int
를 사용하세요. 이것은 코드의 일관성과 상호 운용성에 영향을 미칩니다. 32-bit플랫폼에서도 Int
는 -2,147,483,648
과 2,147,483,647
사이의 값을 저장할 수 있으며, 일반적인 사용성에 문제가 없습니다.
Swift는 또한 현재 플랫폼의 네이티브 사이즈와 같은 UInt
인 정수 타입을 제공합니다.
UInt
는 UInt32
와 같은 크기를 가짐UInt
는 UInt64
와 같은 크기를 가짐
UInt
는 플랫폼의 네이티브 사이즈와 같은 크기의 부호없는 정수 타입이 필요한 경우에만 사용하는 것이 좋습니다. 저장될 값이 음수가 아니더라도Int
를 사용하는 것이 권장됩니다. 정수값에Int
를 일관되게 사용하면 코드 상호 운용성을 지원하고 타입세이프티와 타입추론(Type Safety and Type Inference)에 설명된 것처럼 다른 숫자형식 간에 변환할 필요가 없어집니다.
부동소수점 숫자(Floating-Point Numbers)는 3.14159
, 0.1
, -273.15
처럼 분수 성분을 가진 숫자를 말합니다.
부동소수점은 정수 타입의 값 범위보다 더 넓은 범위의 표현이 가능하고, Int
보다 더 크거나 작은 값의 저장이 가능합니다. Swift는 2개의 부호를 가진 부동 수수점 숫자 타입을 제공합니다.
Double
은 64-bit 부동소수점 숫자를 표기Float
은 32-bit 부동소수점 숫자를 표기
Double
은 최소 15자리의 소수점 정확도를 가지고 있는 것에 반해,Float
은 더 적은 6자리의 소수점 정확도를 가지고 있습니다. 사용할 적절한 부동 소수점 타입은 코드에서 작업해야하는 값의 특성과 범위에 따라 달라집니다. 두 타입 중에는Double
이 더 선호됩니다.