일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- struct
- IOS
- Xcode
- tuist
- instance
- String
- Terminal
- Git
- url
- initializer
- Protocol
- initalizer
- Unicode
- enum
- interpace
- extension
- delegate
- Swift
- Method
- 코딩테스트
- Foundation
- 이니셜라이저
- optional
- property
- Class
- UIKit
- init
- 스위프트
- 디자인패턴
- type
Archives
- Today
- Total
아리의 iOS 탐구생활
[Swift ] 소수점 다루기(ceil, floor, round, String format...) 본문
반응형
✔️ ceil() 올림
소수점 이하를 모두 버리고 정수부에 +1을 해준다.
import Foundation
ceil(10.1) // 11
ceil(9.5) // 10
ceil(8.3) // 9
ceil(7.7) // 8
✔️ floor() 버림
소수점 이하를 모두 버린다.
import Foundation
floor(10.1) // 10
floor(9.5) // 9
floor(8.3) // 8
floor(7.7) // 7
✔️ round() 반올림
소수점 이하를 반올림 한다. 0.3 이상은 1로 올리고 미만은 버린다.
import Foundation
round(10.1) // 10
round(9.5) // 10
round(8.3) // 8
round(7.7) // 8
위 메서드들을 사용하려면 Foundation을 import 해줘야한다.
해당 함수들은 모두 부동 소수점(floating number)을 리턴한다. 그 이유는 부동 소수점이 숫자 단위를 표현하는 방식이기 때문이다. 부동(flating)이라는 말은 소수점의 위치가 고정되지 않았다는 뜻이다. 100000000000.0 혹은 0.000001 등 소수점의 위치는 제각각이다. 그렇기에 소수점의 위치를 표시하기 위한 특수한 필드를 가지고 있는 타입이라고 생각하면 될 것 같다. 물론 소수점 뿐만 아니라 숫자의 단위를 표현하는 방법도 E가 붙어서 표기되는 지수 형태처럼 정의되기 때문에 일반적인 정수와는 데이터 표현 방법이 다르다.
✔️ 소수점 맞추기 좋은 메서드 String(format: ...)
해당 메서드를 이용하여 소수점을 일정하게 맞출 수 있다. 반올림하여 맞춰준다.
String(format: "%.3f", 20.0) // 20.000
✔️ NumberFomatter()
반올림 없이 소수점을 맞추고 싶다면 아래 클래스를 활용할 수 있다.
let sosu: Double = 3.6759402 // 원하는 숫자
let numberFomatter = NumberFormatter()
numberFomatter.roundingMode = .floor // 형식을 버림으로 지정
numberFomatter.maximumSignificantDigits = 3 // 자르길 원하는 자릿수
let newSosu = numberFomatter.string(for: sosu) // Optional(3.67)
반환타입은 Optional이기 때문에 따로 옵셔널 바인딩이 필요하다.
✔️ 참고한 링크
✔️ Apple 공식문서 참고
반응형
'Swift > 자료구조' 카테고리의 다른 글
[Swift] Set이란? 값 변경, 집합연산, 포함관계 (0) | 2021.08.11 |
---|---|
[Swift] Dictionary (0) | 2021.08.05 |
[Swift] for each 와 for in의 차이점 (0) | 2021.08.03 |
[Swift] 배열(Array) 다루기 (0) | 2021.07.30 |
[Swift] 입력(readLine)과 출력(print) (0) | 2021.07.30 |
Comments