Mit Swift 5 können Sie einen der drei folgenden Pfade auswählen , um a aufzurunden CGFloat
.
# 1. Mit CGFloat
der rounded(_:)
Methode von
FloatingPoint
Protokoll gibt Typen, die ihm entsprechen, eine rounded(_:)
Methode. CGFloat
‚s rounded(_:)
hat die folgende Erklärung ab :
func rounded(_ rule: FloatingPointRoundingRule) -> CGFloat
Gibt diesen Wert unter Verwendung der angegebenen Rundungsregel auf einen ganzzahligen Wert gerundet zurück.
Der folgende Spielplatz-Beispielcode zeigt, wie Sie rounded(_:)
einen CGFloat
Wert aufrunden:
import CoreGraphics
let value1: CGFloat = -0.4
let value2: CGFloat = -0.5
let value3: CGFloat = -1
let value4: CGFloat = 0.4
let value5: CGFloat = 0.5
let value6: CGFloat = 1
let roundedValue1 = value1.rounded(.up)
let roundedValue2 = value2.rounded(.up)
let roundedValue3 = value3.rounded(.up)
let roundedValue4 = value4.rounded(.up)
let roundedValue5 = value5.rounded(.up)
let roundedValue6 = value6.rounded(.up)
print(roundedValue1)
print(roundedValue2)
print(roundedValue3)
print(roundedValue4)
print(roundedValue5)
print(roundedValue6)
# 2. Mit ceil(_:)
Funktion
Darwin bietet eine ceil(_:)
Funktion mit der folgenden Deklaration:
func ceil<T>(_ x: T) -> T where T : FloatingPoint
Der folgende Spielplatzcode zeigt, wie Sie ceil(_:)
einen CGFloat
Wert aufrunden:
import CoreGraphics
let value1: CGFloat = -0.4
let value2: CGFloat = -0.5
let value3: CGFloat = -1
let value4: CGFloat = 0.4
let value5: CGFloat = 0.5
let value6: CGFloat = 1
let roundedValue1 = ceil(value1)
let roundedValue2 = ceil(value2)
let roundedValue3 = ceil(value3)
let roundedValue4 = ceil(value4)
let roundedValue5 = ceil(value5)
let roundedValue6 = ceil(value6)
print(roundedValue1)
print(roundedValue2)
print(roundedValue3)
print(roundedValue4)
print(roundedValue5)
print(roundedValue6)
#3. Verwenden vonNumberFormatter
Wenn Sie a aufrunden CGFloat
und im selben Vorgang mit Stil formatieren möchten , können Sie verwenden NumberFormatter
.
import Foundation
import CoreGraphics
let value1: CGFloat = -0.4
let value2: CGFloat = -0.5
let value3: CGFloat = -1
let value4: CGFloat = 0.4
let value5: CGFloat = 0.5
let value6: CGFloat = 1
let formatter = NumberFormatter()
formatter.numberStyle = NumberFormatter.Style.decimal
formatter.roundingMode = NumberFormatter.RoundingMode.ceiling
formatter.maximumFractionDigits = 0
let roundedValue1 = formatter.string(for: value1)
let roundedValue2 = formatter.string(for: value2)
let roundedValue3 = formatter.string(for: value3)
let roundedValue4 = formatter.string(for: value4)
let roundedValue5 = formatter.string(for: value5)
let roundedValue6 = formatter.string(for: value6)
print(String(describing: roundedValue1))
print(String(describing: roundedValue2))
print(String(describing: roundedValue3))
print(String(describing: roundedValue4))
print(String(describing: roundedValue5))
print(String(describing: roundedValue6))