2012-09-05 45 views
3
-(NSString *)convertCurrency:(NSString *)textFieldString{ 
    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 

    [numberFormatter setNumberStyle: NSNumberFormatterNoStyle]; 
    [numberFormatter setGroupingSize:3]; 
    [numberFormatter setGroupingSeparator:@","]; 
    [numberFormatter setUsesGroupingSeparator:YES]; 
    [numberFormatter setMaximumIntegerDigits:20]; 
    number= [NSNumber numberWithInt:[textFieldString intValue]]; 
    NSString *numberString = [NSString stringWithFormat:@"$%@",[numberFormatter stringForObjectValue:number]]; 
    return numberString; 
} 

當我發送的textfield字符串值是發送10000000000只返回$ 2,147,483,647但我只想要$ 10,000,000,000。如何解決這個問題。如何克服2,147,483,647問題NSNumberFormatter

+0

使用更大的數據類型。 – Raptor

+0

@ShivanRaptor更大的數據類型意味着longlongvalue我也嘗試該方法 – Ben10

回答

4

使用long long。假設9,223,372,036,854,775,807美元就足夠了。

NSNumber* number = [NSNumber numberWithLongLong:[textFieldString longLongValue]]; 
NSString* numberString = [numberFormatter stringFromNumber:number]; 

順便說一句,你可以只使用

[numberFormatter setCurrencySymbol:@"$"]; 

,而不是-stringWithFormat:添加的美元符號。

+0

它的工作很好 – Ben10