Search code examples
ioscore-datansdecimalnumber

NSDecimalNumber


NSDecimalNumber is saved with lesser number of zeros, I enter in textfield $6000,00 for example, but in tableview appear $6,00

Please help me solve this issue

Below is my code:

@property (strong, nonatomic) NSNumberFormatter *currencyFormatter;
@synthesize currencyFormatter;


- (void)viewDidLoad
{
    [super viewDidLoad];

    nameTextField.text = editGift.nameOfGift;

    currencyFormatter = [[NSNumberFormatter alloc]init];
    [currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    priceTextField.text = [currencyFormatter stringFromNumber:[editGift priceOfGift]];

}

- (IBAction)saveChanges:(id)sender {
    editGift.nameOfGift = nameTextField.text;

    [currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    NSDecimalNumber *priceAmount = [NSDecimalNumber decimalNumberWithString:priceTextField.text];
    editGift.priceOfGift = priceAmount;

    AppDelegate *myApp = (AppDelegate *) [[UIApplication sharedApplication]delegate];
    [myApp saveContext];
    [self.delegate editGiftViewControllerDidSave:self];
}

Display in tableView:

NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc]init]; 
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
cell.giftCostLabel.text = [currencyFormatter stringFromNumber:[gift priceOfGift]]; 

Solution

  • Try this Code may be helpfull for you.

     - (IBAction)saveChanges:(id)sender {
            editGift.nameOfGift = nameTextField.text;
    
    
        NSDecimalNumber *priceAmount = [NSDecimalNumber decimalNumberWithString:priceTextField.text];
    
         editGift.priceOfGift =priceAmount;
    
    
    
            AppDelegate *myApp = (AppDelegate *) [[UIApplication sharedApplication]delegate];
            [myApp saveContext];
            [self.delegate editGiftViewControllerDidSave:self];
        }
    

    in Tableview try This

     NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
        [currencyFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
    
    
    cell.giftCostLabel.text = [currencyFormatter stringFromNumber:editGift.priceOfGift];