Я новый разработчик Swift. Я использую Swift 4.2 и Xcode 10.1.
Мне нужно извлечь из базы данных число, которое представляет доллары и центы (например, 10.20), и добавить к этому числу, разделить это число и т. Д. Результат должен всегда иметь два числа после десятичной дроби.
Я пытаюсь использовать NSDecimalNumber
, но получаю ошибки при конвертации.
Вот мой код. addend
имеет тип NSDecimalNumber
.
dbRef.observeSingleEvent(of: .value) { (snapshot) in
// Get the balance
let NSbalance = snapshot.value as! NSDecimalNumber
// Add the addend
let balance = NSbalance + addend
// Set the new balance in the database and in the user defaults
dbRef.setValue(balance)
defaults.set(balance, forKey: Constants.LocalStorage.storedBalance)
}
Я получаю ошибку Cannot convert value of type 'NSDecimalNumber' to expected argument type 'Self'
. Когда я принимаю его предложение и делаю следующее изменение: Replace 'NSbalance' with 'Self(rawValue: Self.RawValue(NSbalance))
я получаю «использование неразрешенного идентификатора Self».
Должен ли я использовать NSDecimalNumber
для этой цели? Если нет, что мне делать?