소수점 2자리까지만 남겨두고 나머지는 자르는 방법을 구글링 해서 사용 후 정리해본다.
☄️ 첫 번째 방법 : round() 함수
round 함수는 반올림을 해주는 함수다.
gif에서 보다시피 프로젝트 내에서 UISlider를 통해 몸무게 값을 변경해주면 소수점 아래 5자리까지 값을 출력한다.
쓸데없이 너무 정확하게 값을 출력해 이걸 소수점 아래를 반올림해주고 정수 값만 보게 하려면
아래 코드 블록처럼 출력할 값 앞에 round함수를 사용해주면 된다.
print(round(weightSlider.value))
** round 함수의 타입이 Double이기 때문에 반올림된 값 앞에 Int를 붙여주면 완벽하게 정수 값만 출력받을 수 있다.
print(Int(round(weightSlider.value)))
그렇다면 소수점 특정 자리까지 반올림을 해주려면 어떻게 해야 할까?
프로젝트에서 필요한 건 소수점 2자리까지의 값을 출력해주는 것이기 때문에
100을 곱한 후에 반올림을 통해 소수점 아래를 다 버리고 다시 100으로 나눠주면 된다.
예시를 통해 순서를 살펴보자면,
우리에게 156.32323이라는 입력값이 있을 때
156.32323 * 100 = 15632.323 --> 입력값에 100을 곱해주고,
round(15632.323) = 15632 --> round() 함수를 통해 반올림을 해주고,
15632 / 100 = 156.32 --> 다시 100으로 나눠준다.
소수점 3자리 일 경우에는 1000을, 4자리일 경우에는 10000을 곱하고 나눠주면 된다.
print(round(weightSlider.value*100)/100)
ceil()
소수점 아래 숫자를 다 없애고, 정수에 +1을 해주는 것 = 올림
floor()
소수점 아래 숫자를 다 버리는 것
☄️ 두 번째 방법 : string format
string format을 통해 %. 뒤에 원하는 소수점 자릿수를 입력해주면 된다.
아래 코드 블록과 같이 format에는 소수점 2자리까지 남기겠다는 의미에서 %.2f를 작성하고,
arguments에는 우리가 정한 format을 적용시킬 인자를 써주면 된다.
print(String(format: "%.2f", heightSlider.value))
print(String(format: "%.2f", 145.332)) // 출력값 145.33
print(String(format: "%.2f", 145.0)) // 출력값 145.00
참고 >>
stackoverflow.com/questions/27338573/rounding-a-double-value-to-x-number-of-decimal-places-in-swift
seorenn.blogspot.com/2018/02/ceil-floor-round.html
developer.apple.com/documentation/swift/floatingpoint/2298113-round
'⭐️ 개발 > iOS & Swift' 카테고리의 다른 글
[iOS] Object Library란? (그리고 하나하나 오브젝트에 대해) (0) | 2021.01.30 |
---|---|
[iOS] info.plist란? (그리고 하나하나 속성 정리) (0) | 2021.01.30 |
[iOS] Project editor란? (0) | 2021.01.30 |
[Swift] Closure 클로저란? (0) | 2020.12.16 |
[Swift] Optional 옵셔널이란? (0) | 2020.12.08 |