I found a method to convert String to NSNumber, but the code is in Objective-C. I have tried converting it to Swift but it is not working.
The code I am using:
NSNumberFormatter *f = [[NSNumberFormatter alloc] init]; f.numberStyle = NSNumberFormatterDecimalStyle; NSNumber *myNumber = [f numberFromString:@"42222222222"];
and in Swift I am using it in this way:
var i = NSNumberFormatter.numberFromString("42")
But this code is not working. What am I doing wrong?
NSNumber is a subclass of NSValue that offers a value as any C scalar (numeric) type. It defines a set of methods specifically for setting and accessing the value as a signed or unsigned char , short int , int , long int , long long int , float , or double or as a BOOL .
Using Int initializer Swift provides the function of integer initializers using which we can convert a string into an Int type. To handle non-numeric strings, we can use nil coalescing using which the integer initializer returns an optional integer.
To convert a string to a double, we can use the built-in Double() initializer syntax in Swift. The Double() initializer takes the string as an input and returns the double instance.
NSNumber(integer:myInteger)
has changed to NSNumber(value:myInteger)
let someString = "42222222222" if let myInteger = Int(someString) { let myNumber = NSNumber(value:myInteger) }
Use the Int()
initialiser like this.
let someString = "42222222222" if let myInteger = Int(someString) { let myNumber = NSNumber(integer:myInteger) print(myNumber) } else { print("'\(someString)' did not convert to an Int") }
This can be done in one line if you already know the string will convert perfectly or you just don't care.
let myNumber = Int("42222222222")!
Use the toInt()
method.
let someString = "42222222222" if let myInteger = someString.toInt() { let myNumber = NSNumber(integer:myInteger) println(myNumber) } else { println("'\(someString)' did not convert to an Int") }
Or do it just in one line:
NSNumberFormatter().numberFromString("55")!.decimalValue
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With