TIL(Today I Learned)

12월 15일(화)

학습내용

  • Swift의 소수점 자리수 처리 방법에 대해서 알아보았다.
    • 유지하고 싶은 자리수 만큼 10을 곱하고 반올림, 버림, 올림 한뒤에 다시 곱한 만큼 나눠준다.
      • 예를 들어, 3.141592에서 소수점 3자리 이하를 버릴려면,
      • 3.141592에 1000을 곱한다.
      • 3141.592에 round(.down)로 소수점 이하를 버린다.
      • 그리고 다시 1000으로 나눠주면 3.141이 된다.
    • String(format:,)을 이용하여 소수점 몇번째에서 반올림하는 방법이 있다.
      • 예를 들어, 3.141592에서 소수점 3자리에서 반올림을 한다면,
      • 3.141592를 String(format: “%.3f”, 숫자)를 이용하여 3자리에서 반올림한 문자열로 변환한다.
      • 변환한 문자를 다시 Double()을 이용하여 형을 바꾼다.
  • String(format:,)의 format에 대해서 자세히 알아보았다
    • String(format: “%.3f”, 숫자)형식으로 사용한다.
    • C언어의 변환명세(Conversion Specification)와 동일하다.
    • 형식은 “%[플래그][폭][.정밀도][형변환자]변환문자” 이다.
      • [플래그][폭][.정밀도][형변환자]은 모두 옵션이다.
      • 플래그: 문자열을 출력하는 방법을 결정하는 옵션이다. -, +, 공백, 0, #을 넣을 수 있다.
      • 폭: 문자열의 필드 크기를 결정하는 옵션이다. 양의 정수를 넣을 수 있다.
      • 정밀도: 실수에서는 소수점 이하 자리수를 결정한다. (셋째 자리는 .3f, 넷째자리는 .4f)
      • 형번환자: 인자의 크기를 지정한다. l, ll, L 등이 올 수 있다. (%lld, %Lf)

문제점/고민한점

  • Swift에서 올림, 반올림, 버림을 하는 방법은? (왜 예전 블로그에는 floor, ceil함수로 버림 올림을 하면 된다고 했는데 안되지?)

해결방법

  • Swift에서 올림, 반올림, 버림을 하는 방법은? (왜 예전 블로그에는 floor, ceil함수로 버림 올림을 하면 된다고 했는데 안되지?)
    • 반올림함수 round()에서 입력 파라미터에 따라 올림, 버림으로 바꿀 수 있다.
    • round(.down)은 버림.
    • round(.up)은 올림.

참고

  • Cygwin과 함께 배우는 C프로그래밍