Я перевожу проект из Swift 2.2 в Swift 3 и пытаюсь по возможности избавиться от старых типов данных Cocoa.
Моя проблема здесь: миграция NSDecimalNumber
в Decimal
.
Я использовал, чтобы соединить NSDecimalNumber
к Double
оба способа Swift 2.2:
let double = 3.14
let decimalNumber = NSDecimalNumber(value: double)
let doubleFromDecimal = decimalNumber.doubleValue
Теперь переключаемся на Swift 3:
let double = 3.14
let decimal = Decimal(double)
let doubleFromDecimal = ???
decimal.doubleValue
не существует, ни Double(decimal)
, даже не decimal as Double
... Единственный хак, который я придумал, это:
let doubleFromDecimal = (decimal as NSDecimalNumber).doubleValue
Но было бы совершенно глупо пытаться избавиться от NSDecimalNumber
и использовать его время от времени...
Ну, или я пропустил что-то очевидное, и прошу прощения за трату вашего времени, или, на мой взгляд, нужно было устранить лазейку...
Заранее спасибо за помощь.
Изменить: больше ничего на эту тему на Swift 4.
Изменить: ничего больше на эту тему на Swift 5.