InsulinFormatter.swift 674 B

12345678910111213141516171819202122232425
  1. // LoopFollow
  2. // InsulinFormatter.swift
  3. import Foundation
  4. import HealthKit
  5. final class InsulinFormatter {
  6. static let shared = InsulinFormatter()
  7. private let precision = InsulinPrecisionManager.shared
  8. private init() {}
  9. func string(_ q: HKQuantity) -> String {
  10. string(q.doubleValue(for: .internationalUnit()))
  11. }
  12. func string(_ units: Double) -> String {
  13. let fd = precision.fractionDigits
  14. let nf = NumberFormatter()
  15. nf.minimumFractionDigits = fd
  16. nf.maximumFractionDigits = fd
  17. nf.numberStyle = .decimal
  18. return nf.string(from: NSNumber(value: units)) ?? String(format: "%.\(fd)f", units)
  19. }
  20. }