Number formatting
This commit is contained in:
@@ -271,15 +271,22 @@ public struct UnitValue<ValueType: ConvertibleToDouble>:
|
|||||||
|
|
||||||
// MARK: CustomStringConvertible Conformance
|
// MARK: CustomStringConvertible Conformance
|
||||||
public var description: String {
|
public var description: String {
|
||||||
|
return self.formatted(maximumFractionDigits: 4)
|
||||||
|
}
|
||||||
|
|
||||||
|
// New reusable function
|
||||||
|
public func formatted(maximumFractionDigits: Int) -> String {
|
||||||
let formatter = NumberFormatter()
|
let formatter = NumberFormatter()
|
||||||
formatter.maximumFractionDigits = 4
|
formatter.maximumFractionDigits = maximumFractionDigits
|
||||||
formatter.minimumFractionDigits = 0
|
formatter.minimumFractionDigits = 0 // To avoid trailing zeros when not needed
|
||||||
formatter.numberStyle = .decimal
|
formatter.numberStyle = .decimal
|
||||||
|
|
||||||
if let formattedValue = formatter.string(from: NSNumber(value: value)) {
|
if let formattedValue = formatter.string(
|
||||||
return "\(formattedValue) \(unit.rawValue)"
|
from: NSNumber(value: self.value))
|
||||||
|
{
|
||||||
|
return "\(formattedValue) \(self.unit.rawValue)"
|
||||||
} else {
|
} else {
|
||||||
return "\(value) \(unit.rawValue)"
|
return "\(self.value) \(self.unit.rawValue)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user