Explorar o código

Ensure decimal for mmol .0

Jonas Björkert %!s(int64=2) %!d(string=hai) anos
pai
achega
46a89e3458
Modificáronse 1 ficheiros con 12 adicións e 6 borrados
  1. 12 6
      LoopFollow/helpers/bgUnits.swift

+ 12 - 6
LoopFollow/helpers/bgUnits.swift

@@ -14,21 +14,27 @@ class bgUnits {
     static func toDisplayUnits(_ value: String) -> String {
         let numberFormatter = NumberFormatter()
         numberFormatter.numberStyle = .decimal
-        numberFormatter.maximumFractionDigits = UserDefaultsRepository.units.value == "mg/dL" ? 0 : 1
-        numberFormatter.locale = Locale.current
         
         if UserDefaultsRepository.units.value == "mg/dL" {
-            if let number = Float(value) {
+            numberFormatter.maximumFractionDigits = 0 // No decimal places for mg/dL
+        } else {
+            numberFormatter.maximumFractionDigits = 1 // Always one decimal place for mmol/L
+            numberFormatter.minimumFractionDigits = 1 // This ensures even .0 is displayed
+        }
+        
+        numberFormatter.locale = Locale.current
+        
+        if let number = Float(value) {
+            if UserDefaultsRepository.units.value == "mg/dL" {
                 let numberValue = NSNumber(value: number)
                 return numberFormatter.string(from: numberValue) ?? value
-            }
-        } else {
-            if let number = Float(value) {
+            } else {
                 let mmolValue = number / 18
                 let numberValue = NSNumber(value: mmolValue)
                 return numberFormatter.string(from: numberValue) ?? value
             }
         }
+        
         return value
     }