NumberFormatter

Groot·2022년 6월 7일
0

TIL

목록 보기
18/153
post-thumbnail

TIL

🌱 난 오늘 무엇을 공부했을까?

📌 NumberFormatter

  • 숫자 값과 텍스트 표현 사이를 변환하는 포맷터
  • 사용해본 옵션
    • numberStyle : 숫자의 스타일을 지정
    • roundingMode : 반올림 방법을 지정
      • case ceiling
        • 양의 무한대로 반올림합니다.
      • case floor
        • 음의 무한대로 반올림합니다.
      • case down
        • 0을 향해 반올림합니다.
      • case up
        • 0에서 반올림합니다.
      • case halfEven
        • 가장 가까운 정수 쪽으로 반올림하거나 등거리인 경우 짝수 쪽으로 반올림합니다.
      • case halfDown
        • 가장 가까운 정수 쪽으로 반올림하거나 등거리인 경우 0 쪽으로 반올림합니다.
      • case halfUp
        • 가장 가까운 정수 쪽으로 반올림하거나 등거리인 경우 0에서 멀어집니다.
- var minimumIntegerDigits: Int
    - 소수점 구분 기호 앞의 최소 자릿수입니다.
- var maximumIntegerDigits: Int
    - 소수점 구분 기호 앞의 최대 자릿수입니다.
- var minimumFractionDigits: Int
    - 소수점 구분 기호 뒤의 최소 자릿수입니다.
- var maximumFractionDigits: Int
    - 소수점 구분 기호 뒤의 최대 자릿수입니다.



- var usesSignificantDigits: Bool
    - 포맷터가 숫자 서식을 지정할 때 최소 및 최대 유효 자릿수를 사용하는지 여부를 나타내는 부울 값입니다.
- var minimumSignificantDigits: Int
    - 숫자 포맷터의 최소 유효 자릿수입니다.
- var maximumSignificantDigits: Int
    - 숫자 포맷터의 최대 유효 자릿수입니다.

import Foundation

//MARK: - number
let number1 = 12345678911234567891234567891.0
let number2 = 1.2345678911234567891123456789
let number3 = 123456789.123456789123456789

//MARK: - Formatter setting
let numberFormatter1 = NumberFormatter()
numberFormatter1.numberStyle = .scientific

let numberFormatter2 = NumberFormatter()
numberFormatter2.usesSignificantDigits = true
numberFormatter2.roundingMode = .up
numberFormatter2.maximumSignificantDigits = 25

let numberFormatter3 = NumberFormatter()
numberFormatter3.usesSignificantDigits = true // 기본적으로 true
numberFormatter3.roundingMode = .ceiling
numberFormatter3.maximumSignificantDigits = 30

//MARK: - number print
print("number1 : \(number1)")
print("numberFormatter1: \(numberFormatter1.string(for: number1)!)")
print("numberFormatter2: \(numberFormatter2.string(for: number1)!)")
print("numberFormatter3: \(numberFormatter3.string(for: number1)!)")

print("")

print("number2 : \(number2)")
print("numberFormatter1: \(numberFormatter1.string(for: number2)!)")
print("numberFormatter2: \(numberFormatter2.string(for: number2)!)")
print("numberFormatter3: \(numberFormatter3.string(for: number2)!)")

print("")

print("number3 : \(number3)")
print("numberFormatter1: \(numberFormatter1.string(for: number3)!)")
print("numberFormatter2: \(numberFormatter2.string(for: number3)!)")
print("numberFormatter3: \(numberFormatter3.string(for: number3)!)")

print("")
/*
number1 : 1.2345678911234567e+28
numberFormatter1: 12,345,678,911,234,567,000,000,000,000
numberFormatter2: 12345678911234567000000000000
numberFormatter3: 12345678911234567000000000000

number2 : 1.2345678911234568
numberFormatter1: 1.235
numberFormatter2: 1.2345678911234568
numberFormatter3: 1.2345678911234568

number3 : 123456789.12345679
numberFormatter1: 123,456,789.123
numberFormatter2: 123456789.12345679
numberFormatter3: 123456789.12345679
*/ 뭔가 이상한 느낌..
profile
I Am Groot

0개의 댓글