Как преобразовать строку в удвоение в Swift - PullRequest
0 голосов
/ 17 сентября 2018

значение взято из словаря Any, который может содержать строки

if value is String {
    total += Double(value)    
}

этот код выдает ошибку "невозможно вызвать инициализатор для типа 'Double' со списком аргументов типа '(Any)'"

if let item = value as? String {
    total += Double(item)
}

этот код выдает ошибку "значение необязательного типа 'Double?' не развернутый, ты хотел использовать '!' или '?'? "

Ответы [ 4 ]

0 голосов
/ 17 сентября 2018

Преобразовать строку Swift в двойную

Используйте Double, Float, CGFloat для преобразования значений с плавающей точкой (действительные числа).

let lessPrecisePI = Float("3.14")
let morePrecisePI = Double("3.1415926536")
let width = CGFloat(Double("200.0")!)

Преобразовать строку Swift в Int Используйте Int и такие варианты, как Int32, UInt64 и т. Д. Для преобразования целочисленных значений.

let wholeNumber = Int("27")
let smallInt = Int16("34")
let largeInt = Int64("39384")

Проверьте этот блог для получения более подробной информации supereasyapps.com

0 голосов
/ 17 сентября 2018

Прогнозирование любого значения может иногда приводить к фатальной ошибке, когда значение может быть нулевым.Поэтому рекомендуется указывать значение по умолчанию, используя ??

0 голосов
/ 17 сентября 2018

Значение необязательного типа 'Double?'не развернутый;ты хотел использовать '!'или '?'?

Эта ошибка появляется из-за того, что вы пытаетесь добавить необязательное значение к total.

Double(item) дает необязательный результат, поэтому его можно добавить в цепочку if-let .

    if let item = value as? String, let doubleVal = Double(item) {
        total += doubleVal
    }
0 голосов
/ 17 сентября 2018

Double(fromString) - сбойный инициализатор, результат может быть нулевым, поэтому он возвращает необязательный Double?

Вы можете использовать оператор ниль-коалесцирования Swift:

if let item = value as? String {
    total += Double(item) ?? 0
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...