无法在Swift中将String转换为Double

时间:2015-04-28 12:41:05

标签: swift

我有一个字典作为服务器的响应:

{ 
  "gross_price" = "6.00";
  "gross_price_total" = "6.00";
  "guests_count" = 1;
}

然后我尝试:

 let x = dictionary["gross_price_total"] as? Double
 let y = dictionary["gross_price_total"]!
 println("result: \(x) \(y)")

作为输出我得到:

result: nil 6.00

为什么呢?它不是Double吗?

结果是我的最终代码不起作用:

if let grossPriceTotal = dictionary["gross_price_total"] as? Double {
    println("final result: \(grossPriceTotal)")
}

2 个答案:

答案 0 :(得分:2)

这应该让你去:

let x = (dictionary["gross_price_total"] as NSString).doubleValue

答案 1 :(得分:1)

您可以创建一个扩展程序,您可以使用字符串初始化Double。但是你必须使用NSString方法doubleValue

extension Double{
    init(string:String){
        self = (string as NSString).doubleValue
    }
}

let x = Double(string: dictionary["gross_price_total"])