On 8 Mar 2010, at 3:06 PM, Ryan Stephens wrote: > Hi all, > > I'm trying to use an NSNumberFormatter to format the text of a > UITextField as a user enters characters. The issue I'm currently > having is that the number formatter always drops a trailing zero. For > example, see the following code: > > - (BOOL)textField:(UITextField *)textField > shouldChangeCharactersInRange:(NSRange)range > replacementString:(NSString *)string > { > NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] > autorelease]; > [formatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; > [formatter setNumberStyle:NSNumberFormatterCurrencyStyle]; > [formatter setLocale:[NSLocale currentLocale]]; > > NSString *currentValue = [[formatter > numberFromString:textField.text] stringValue]; > NSLog(@"current value: %@", currentValue); > } > > Assuming currentLocal == en_US and textField.text == "$2.30", > [formatter numberFromString:textField.text] returns 2.3. I'd like it > to return 2.30
But numberFromString: returns an NSNumber, which represents a numeric value, not a string. There's no difference in _numeric_ value between 2.3 and 2.30. There is a stringValue method for NSNumber, but it's a convenience method that gets you a generic, not-for-a-particular-purpose representation of the value. The presence, or absence, or having-passed-through of an NSNumberFormatter doesn't change the value of the NSNumber. If you want to do arithmetic with the NSNumber, you could take the doubleValue and work on that. It would be better for your purposes to work with an NSDecimalNumber; use setGeneratesDecimalNumbers: on the formatter.* Do all your arithmetic with NSDecimalNumber methods, and then use the formatter to convert the result to NSString. — F ---- * The docs that introduce the method "discourage" using it, but I don't see a cleaner way to go from string to decimal. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com