안녕하세요 에밀리입니다
오늘은 NumberFormatter()를 이용하여
소수점 아래 자릿수를 원하는 만큼! 반올림 없이! 자르는 방법을 알아보겠습니다
소수점을 원하는 만큼 자르려고 구글을 뒤져보니…
String.format(“%.2f”, 1.535)
이 많이 나오지만,
자꾸 반올림을 합니다..
나는 반올림이 필요없는데!
그래서 찾아본 방법은 NumberFormatter()입니다
방법
let numberFormatter = NumberFormatter()
numberFormatter.roundingMode = .floor // 형식을 버림으로 지정
numberFormatter.minimumSignificantDigits = 2 // 자르길 원하는 자릿수
numberFormatter.maximumSignificantDigits = 2
let originalNum = 1.6759402 // 원하는 숫자
let newNum = numberFormatter.string(from: originalNum) // result 1.67
위의 방법대로 하면
let newNum = numberFormatter.string(from: originalNum)
결과값이 Optional String으로 리턴됩니다
(이후에 형변환 필수)
NumberFormatter란?
숫자값과 문자적 표현 사이를 변환해주는 formatter입니다
(참조 : https://developer.apple.com/documentation/foundation/numberformatter)
문서를 살펴보면,
float과 double은 특정 소수점 자리수로 포맷 가능합니다.
이 문장을 보실 수 있습니다
Significant Digits and Fraction Digits
- NumberFormatter 클래스는 fractional 표현할 때 옵션 제공
- usesSignificantDigits 프로퍼티를 true로 설정해야 가능. (디폴트 true)
- minimumSignificantDigits, maximumSignificantDigits property를 이용해 특정 digit을 보여줌
- 소수점 자릿수 뿐만 아니라 소수점 이전의 integer 자릿수도 편집 가능
이상입니다.