在swift中从string获取整数值
所以我可以这样做:
var stringNumb: NSString = "1357" var someNumb: CInt = stringNumb.intValue  但是我找不到用w / a String 。 我想要做一些事情: 
 var stringNumb: String = "1357" var someNumb: Int = Int(stringNumb) 
这也不起作用:
 var someNumbAlt: Int = myString.integerValue 
	
Swift 2.0可以使用构造函数初始化Integer
 var stringNumber = "1234" var numberFromString = Int(stringNumber) 
我会使用:
 var stringNumber = "1234" var numberFromString = stringNumber.toInt() println(numberFromString) 
 注意toInt() : 
如果string表示一个适合Int的整数,则返回相应的整数。
在Swift 3.0中
types1:将NSString转换为string
  let stringNumb:NSString = "1357" let someNumb = Int(stringNumb as String) // 1357 as integer 
types2:如果string只有整数
  let stringNumb = "1357" let someNumb = Int(stringNumb) // 1357 as integer 
types3:如果string具有浮点值
  let stringNumb = "13.57" if let stringToFloat = Float(stringNumb){ let someNumb = Int(stringToFloat)// 13 as Integer }else{ //do something if the stringNumb not have digit only. (ie,) let stringNumb = "13er4" } 
 你想要的方法是toInt() – 你必须小心,因为toInt()返回一个可选的Int。 
 let stringNumber = "1234" let numberFromString = stringNumber.toInt() // numberFromString is of type Int? with value 1234 let notANumber = "Uh oh" let wontBeANumber = notANumber.toInt() // wontBeANumber is of type Int? with value nil 
 如果只能使用NSString 。 
 这与Objective-C非常相似。 所有的数据types都存在,但需要添加as NSString 
  var x = "400.0" as NSString x.floatValue //string to float x.doubleValue // to double x.boolValue // to bool x.integerValue // to integer x.intValue // to int 
 另外,我们还添加了toInt()函数。请参阅Apple Inc.的“The Swift Programming Language”。iBooks。  https://itun.es/us/jEUH0.l第49页; 
 x.toInt() 
您可以桥接从string到NSString并从CInt转换为Int像这样:
 var myint: Int = Int(stringNumb.bridgeToObjectiveC().intValue) 
 我为此写了一个扩展。 它总是返回一个Int 。 如果string不适合Int ,则返回0。 
 extension String { func toTypeSafeInt() -> Int { if let safeInt = self.toInt() { return safeInt } else { return 0 } } } 
上面的答案没有帮助我,因为我的string值是“700.00”
与Swift 2.2这对我工作
 let myString = "700.00" let myInt = (myString as NSString).integerValue 
我将myInt传递给NSFormatterClass
 let formatter = NSNumberFormatter() formatter.numberStyle = .CurrencyStyle formatter.maximumFractionDigits = 0 let priceValue = formatter.stringFromNumber(myInt!)! //Now priceValue is ₹ 700 
感谢这篇博文。
更一般的解决scheme可能是一个扩展
 extension String { var toFloat:Float { return Float(self.bridgeToObjectiveC().floatValue) } var toDouble:Double { .... } .... } 
这例如通过toFloat扩展了swift本地String对象
在Swift 2.0中将string转换为Int:
 var str:NSString = Data as! NSString var cont:Int = str.integerValue 
  .intergerValue or intValue for Int32使用.intergerValue or intValue for Int32 
8:1赔率 (*)
 var stringNumb: String = "1357" var someNumb = Int(stringNumb) 
要么
 var stringNumb: String = "1357" var someNumb:Int? = Int(stringNumb) 
  Int(String)返回一个可选的Int?  ,而不是一个Int 。 
安全使用:不要明确拆包
 let unwrapped:Int = Int(stringNumb) ?? 0 
要么
 if let stringNumb:Int = stringNumb { ... } 
  (*) 没有答案实际解决了为什么var someNumb: Int = Int(stringNumb)不起作用。 
简单而肮脏的方式
 // Swift 1.2 if let intValue = "42".toInt() { let number1 = NSNumber(integer:intValue) } // Swift 2.0 let number2 = Int(stringNumber) // Using NSNumber let number3 = NSNumber(float:("42.42" as NSString).floatValue) 
扩展方式
这个更好,因为它可以很好地与locale和decimals一起玩。
 extension String { var numberValue:NSNumber? { let formatter = NSNumberFormatter() formatter.numberStyle = .DecimalStyle return formatter.numberFromString(self) } } 
现在你可以简单地做:
 let someFloat = "42.42".numberValue let someInt = "42".numberValue