无法在 Swift 中将 String 转换为 Double [重复]

Posted

技术标签:

【中文标题】无法在 Swift 中将 String 转换为 Double [重复]【英文标题】:Cannot convert String to Double in Swift [duplicate] 【发布时间】:2015-04-28 12:41:05 【问题描述】:

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

 
  "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)")

【问题讨论】:

"6.00" 是一个字符串,而不是一个数字。如果您搜索“Swift string to double”,那么您应该会找到一些答案,其中一些已经在“相关”部分...... 【参考方案1】:

这应该让你走:

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

【讨论】:

【参考方案2】:

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

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


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

【讨论】:

支持使用扩展的创造性方式

以上是关于无法在 Swift 中将 String 转换为 Double [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中将 Int 转换为 String

无法在iOS swift中将base64string解码为uiimage,但在android中工作正常[重复]

如何在swift中将'Date'类型的转换值返回为'String'

如何在 Swift 中将 NSURL 转换为字符串

如何在swift中将字符索引从layoutManager转换为String scale

在 swift 中将 String 类型数组转换为 Float 类型数组 不能将类型 'String' 的值分配给类型 'Double' 的下标。