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()을 이용하여 형을 바꾼다.
- 유지하고 싶은 자리수 만큼 10을 곱하고 반올림, 버림, 올림 한뒤에 다시 곱한 만큼 나눠준다.
- 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프로그래밍