views:

317

answers:

3

I have a double number and I would like to convert it to string.

The number is, for example, something like

24.043333332154465777...

but if I convert it to string using something like

NSString *myString = [NSString stringWithFormat:@"%f", myDouble];

The string is just

24.043333

how do I get a full string the corresponds to the whole double number? What other methods do I have to convert this?

+2  A: 

You can pass a width format specifier to stringWithFormat.

NSString *myString = [NSString stringWithFormat:@"%.20f", myDouble];

will format myDouble with 20 decimal places.

mipadi
+1 (Do add the closing quote to the format string, though)
Stephen Canon
thanks!!! Just a final question. Is this the only way to convert a double to string? I mean, using stringWithFormat?
Digital Robot
+4  A: 

Another option, since you asked for other ways in your comment to mipadi's answer:

Create an NSNumber using NSNumber *myDoubleNumber = [NSNumber numberWithDouble:myDouble];

Then call [myDoubleNumber stringValue];

From the docs:

Returns the receiver’s value as a human-readable string, created by invoking descriptionWithLocale: where locale is nil.

Jasarien
both methods - yours and mipadi's - are perfect for the conversion, but for some reason, mipadi's gave me a string that was slightly different of the original number. Your's give me the same number... thanks.
Digital Robot
+2  A: 

There's also NSNumberFormatter.

Peter Hosey