Bibi's DevLog ๐ค๐
[Swift] ์ค์๋ฅผ ์์์ n์งธ ์๋ฆฌ๊น์ง ์ถ๋ ฅํ๊ธฐ - round, String(format:_:) ๋ณธ๋ฌธ
๐ฑ๐ iOS/๐ Swift
[Swift] ์ค์๋ฅผ ์์์ n์งธ ์๋ฆฌ๊น์ง ์ถ๋ ฅํ๊ธฐ - round, String(format:_:)
๋น๋น bibi 2022. 11. 28. 15:57Rounding a double value to x number of decimal places in swift
์์์ n์งธ ์๋ฆฌ๊น์ง ์ถ๋ ฅํ๊ธฐ
1. round() ํ์ฉ
let x = 1.23556789
let y = Double(round(1000 * x) / 1000)
print(y) /// 1.236
์๋ฅผ ๋ค์ด ์์์ 3์งธ์๋ฆฌ๊น์ง ์ถ๋ ฅํด์ผ ํ๋ค๋ฉด,
- ์๋ ๊ฐ์ 1000์ ๊ณฑํ๋ค
- ๋ฐ์ฌ๋ฆผ ์ฒ๋ฆฌํ๋ค
- ๋ค์ 1000์ผ๋ก ๋๋๋ค
์ด๋ ๊ฒ ๋ณํํ ์ ์๋ค.
์์ฃผ ์ฌ์ฉํ๋ค๋ฉด ์ต์คํ ์ ์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅ
extension Double {
/// Rounds the double to decimal places value
func rounded(toPlaces places:Int) -> Double {
let divisor = pow(10.0, Double(places))
return (self * divisor).rounded() / divisor
}
}
2. String(format:_:) ํ์ฉ
let x = 1.23556789
print(String(format: "%.3f", x)) // 1.236
String(format:_:)
ํจ์๋ฅผ ์ฌ์ฉํด ์์์ n์งธ ์๋ฆฌ๊น์ง ๋ฌธ์์ด๋ก ์ถ๋ ฅํ๋ค.
- ๋จ์
- ํ์ ์ด ๋ฌธ์์ด์ด ๋๋ค.
import Foundation
์ด ํ์ํ๋ค.
- ์ฅ์
- ๊ฐ ์์ฒด๋ฅผ ๋ฐ๊พธ์ง ์๊ณ ๋จ์ ์ถ๋ ฅ ์ฉ๋๋ก ์ฌ์ฉํ ๋
- ๋ฐ์ฌ๋ฆผ ํ ์์์ ๋งจ ๋ ์๋ฆฌ๊ฐ 0์ด ๋์์ ๋, 0์ ํฌํจํด ์ถ๋ ฅํด์ผ ํ๋ค๋ฉด ์ด ๋ฉ์๋๋ฅผ ์ฐ๋ ๊ฒ ์ข๋ค.
let e = 2.71827876984127 // 10์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ
print(round(e * 100_000_000) / 100_000_000) // 2.71827877
print(String(format:"%.9f", e)) // 2.718278770
'๐ฑ๐ iOS > ๐ Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] Int์ธ Double ํ๋ณํ๊ธฐ(์์์ ์ดํ๊ฐ 0์ธ Double ํ๋ณํ๊ธฐ) (0) | 2022.12.07 |
---|---|
[Swift] delay : ์ง์ฐ์๊ฐ ๋๊ณ ์ฝ๋ (๋ฐ๋ณต) ์คํํ๊ธฐ - Timer, asyncAfter (0) | 2022.12.02 |
[Swift] ===(_:_:) ์ !==(_:_:) (0) | 2022.10.12 |
๋์ผ์ฑ๊ณผ ๋๋ฑ์ฑ Identity and Equality (Swift) (0) | 2022.10.12 |
[Swift] removeFirst(), removeLast(), removeFirst(_:), removeLast(_:) (2) | 2022.10.06 |