Swift

소수점 제거 (올림 / 버림 / 반올림 ) 관련 함수 - swift

나른한코딩 2021. 7. 22. 15:06

코딩테스트 문제를 풀 던 중에 소수점을 버려야 하는 경우가 발생해서 찾아보던 중

내용정리를 해두면 좋을 것 같아 간단하게 정리해보려 합니다!

 

 

각각의 함수의 공식 문서와 playground에서의 테스트 결과를 작성하였습니다🤔

( 소수점 자리의 수가 5미만, 5, 6이상 인 경우, 이렇게 3가지 숫자로 테스트를 진행하였습니다. )

 

소수점 올림 : ceil()

  • ceil() 함수는 소수점 아래의 숫자가 있으면, 소수점 아래를 다 버림 처리하고 정수부에 1을 더해주는 함수입니다.

swift ceil function

( * SIMD2 란? : "A vector of two scalar values."로, 두 스칼라 값의 백터값을 의미합니다. )

 

 

ceil함수를 테스트~ 그 결과는?

swift 소수점 올림 테스트

세 가지 경우에서 모두 소수점 올림이 잘 이루어진 걸 볼 수 있네요!

 

 

소수점 버림 : floor()

  • floor()의 경우는 ceil()에서의 버림처리 부분만하고 정수부는 건들지 않는 형태라고 보시면 됩니다.

swift floor function

( * SIMD3 이란? : "A vector of three scalar values." 로, 세 스칼라값의 백터값을 의미합니다. )

 

 

floor함수를 테스트~ 그 결과는?

swift 소수점 버림 테스트

 

이것도 세가지 경우에 대해서 소수점 버림이 잘 이루어졌군요!

 

소수점 반올림 : round()

  • round()는 5미만의 경우는 floor()함수처럼 소수점 아래를 버림 처리, 5이상의 경우는 ceil()함수 처럼 소수점 아래는 버림처리하고 정수부에 1을 더해줍니다.

swift round instance method

마지막으로 round 함수를 테스트~ 그 결과는?

swift 소수점 반올림 실습

5미만인 1.3의 경우는 버림 처리가 되었고, 5이상인 1.5와 1.6에 대해서는 올림 처리가 잘 된 것을 보실 수 있습니다.

 

 

위의 내용을 코드블록으로 남겨두겠습니다. 직접 작성하며 테스트 해보시길 바랍니다 😄

// 소수점 올림
ceil(1.3)
ceil(1.5)
ceil(1.6)

// 소수점 버림
floor(1.3)
floor(1.5)
floor(1.6)

// 소수점 반올림
round(1.3)
round(1.5)
round(1.6)

 

예전에 코딩테스트 볼 때, 소수점 처리하는 부분에서 따로 함수가 없는 줄 알고 직접 구현했던 기억이...ㅠㅠ

이걸 보시는 여러분들은 DRY(Don't Repeat Yourself!) !

 

직접 구현해보는 것도 좋은 경험이지만, 이미 있는건 편하게 사용합시다ㅎㅎ

.

.

.

틀린부분이 있거나, 더 좋은 방법이 있다면 댓글로 남겨주세요! 
🌈댓글은 언제나 환영입니다🙏🏻

 

반응형