diff --git a/Sources/Units/Units.swift b/Sources/Units/Units.swift index f55f00a..8e3f800 100644 --- a/Sources/Units/Units.swift +++ b/Sources/Units/Units.swift @@ -271,15 +271,22 @@ public struct UnitValue: // MARK: CustomStringConvertible Conformance public var description: String { + return self.formatted(maximumFractionDigits: 4) + } + + // New reusable function + public func formatted(maximumFractionDigits: Int) -> String { let formatter = NumberFormatter() - formatter.maximumFractionDigits = 4 - formatter.minimumFractionDigits = 0 + formatter.maximumFractionDigits = maximumFractionDigits + formatter.minimumFractionDigits = 0 // To avoid trailing zeros when not needed formatter.numberStyle = .decimal - if let formattedValue = formatter.string(from: NSNumber(value: value)) { - return "\(formattedValue) \(unit.rawValue)" + if let formattedValue = formatter.string( + from: NSNumber(value: self.value)) + { + return "\(formattedValue) \(self.unit.rawValue)" } else { - return "\(value) \(unit.rawValue)" + return "\(self.value) \(self.unit.rawValue)" } }