Сердечный ритм без десятичных знаков - PullRequest
0 голосов
/ 19 октября 2019

Я создаю приложение для часов Apple Watch в Xcode и пример кода с сайта Apple Developer. SpeedySloth: создание тренировки. имеет HeartRate, округленную до одного десятичного знака, например 61,0. Как это исправить?

case HKQuantityType.quantityType(forIdentifier: .heartRate):
                /// - Tag: SetLabel
                let heartRateUnit = HKUnit.count().unitDivided(by: HKUnit.minute())
                let value = statistics.mostRecentQuantity()?.doubleValue(for: heartRateUnit)
                let roundedValue = Double( round( 1 * value! ) / 1 )
                label.setText("\(roundedValue) BPM")

Я пытался изменить обе цифры на 0, но это дало мне 6,1 ударов в минуту или 0,0 ударов в минуту

Спасибо

1 Ответ

2 голосов
/ 19 октября 2019

Простое решение состоит в том, чтобы округлить до целого числа и показать целое число.

let value = // ... some Double ...
let s = String(Int(value.rounded(.toNearestOrAwayFromZero)))
label.setText(s + " BPM")

Правильно, однако, вы должны поместить форматирование строки, основанной на числе, в руки NumberFormatter. Это его работа: формат a число .

let i = value.rounded(.toNearestOrAwayFromZero)
let nf = NumberFormatter()
nf.numberStyle = .none
let s = nf.string(from: i as NSNumber)!
// ... and now show the string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...