2013-08-03 102 views
0

我覺得答案就在我面前,但我似乎無法找到它。使NSNumberFormatter始終將輸入的最右邊兩位數作爲小數部分

我的代碼:

- (void)viewDidLoad { 

    numFormatter = [[NSNumberFormatter alloc] init]; 
    numFormatter.locale = [NSLocale currentLocale]; 
    [numFormatter setMaximumFractionDigits:2]; 
    [numFormatter setDecimalSeparator:@"."]; 
    [numFormatter setAlwaysShowsDecimalSeparator:YES]; 
    [numFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
} 

-(void)textFieldDidChange:(UITextField *)textField{ 

    inputLbl.text = [numFormatter stringFromNumber:[NSNumber numberWithDouble:[dummyTextField.text doubleValue]]]; 

} 

如果用戶輸入101,它顯示爲$101.00,當我需要$1.01所以輸入似乎小數點後開始,當我想它開始於的幾百點小數點。

+0

你的意思是你總想把最後兩位數字當作小數部分?如果輸入少於三位數呢? –

+0

是的。如果它小於3,說他們只輸入「1」,那麼我希望結果爲「0.01」 –

+3

...在格式化之前除以100? –

回答

2

NSNumberFormater根據哪個風格,你已經設置需要在和格式這個數字。如果用戶輸入101,正如你所建議的那樣,那麼一百一十一位就是被格式化的數字。您已選擇貨幣風格,因此您獲得$101.00。這個數字仍然是101;它只是格式化看起來像一個貨幣量。如果你想$1.01,你將不得不輸入數字1.01。數字格式化程序不會更改數字。它只是改變了它的顯示方式。 1.01是一個數字; $1.01是以貨幣表示的數字。 1.01不等於101.數字格式化程序不會更改您輸入的數字,而是顯示它的顯示方式。

相關問題