2012-12-19 33 views
2

NSDecimalNumber保存有较少数量的零,我在文本字段6000,00 $例如进入,但在tableview中出现$ 6.00NSDecimalNumber

请帮我解决这个问题

下面是我的代码:

@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]; 
} 

显示中的tableView:

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

添加代码 - 货币格式化以及如何显示数值。 – Sulthan

+0

请你可以检查我的代码我添加了货币格式化程序,以及我如何在我的tableview中显示值。谢谢 – Astakhoff

+1

您已经将数字格式化为货币格式因此,无需在表格视图中再次进行转换。你有机会尝试我的代码吗? –

回答

1

试试这个代码可能是有益的 为你。

- (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]; 
    } 

在泰伯维尝试这

NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init]; 
    [currencyFormatter setNumberStyle: NSNumberFormatterCurrencyStyle]; 


cell.giftCostLabel.text = [currencyFormatter stringFromNumber:editGift.priceOfGift]; 
+0

editGift.priceOfGift = [currencyFormatter stringFromNumber:priceAmount]; 'NSString *'指定为'NSDecimalNumber *'的指针类型不兼容指定 – Astakhoff

+0

检查我的更新代码(保存数据时刚删除货币格式化程序) –

+0

我试过了你的代码,谢谢,但是在模拟器中tableview显示NaN,数字60而不是6000.非常奇怪:( – Astakhoff