doubleValue from NSString, decimals get removed
Here I am using NSNumberFormater to set max number of decimals in a double
to two. It seems to work fine, but when I try to convert it back to a
double, from the string generated by NSNumberFormater, as you can see in
the NSLog output, any decimal is removed and replaced by trailing zeros.
Why is this?
- (double)randomDoubleBetween:(double)smallNumber and:(double)bigNumber {
double diff = bigNumber - smallNumber;
double ranNum = (((double) (arc4random() % ((unsigned)RAND_MAX + 1)) /
RAND_MAX) * diff) + smallNumber;
NSNumberFormatter *doubleValueWithMaxDecimalDigits =
[[NSNumberFormatter alloc] init];
[doubleValueWithMaxDecimalDigits
setNumberStyle:NSNumberFormatterDecimalStyle];
[doubleValueWithMaxDecimalDigits setMaximumFractionDigits:2];
NSNumber *num = [NSNumber numberWithDouble:ranNum];
NSString *valueToReturn = [doubleValueWithMaxDecimalDigits
stringFromNumber:num];
NSLog(@"String value %@", valueToReturn);
NSLog(@"Double value converted from string %f", [valueToReturn
doubleValue]);
return [valueToReturn doubleValue];
}
NSLog output:
2013-08-09 02:25:05.031 GG[27947:907] String value 176,19
2013-08-09 02:25:05.035 GG[27947:907] Double value converted from string
176.000000
No comments:
Post a Comment