-(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字符串值为send 10000000000时,只返回$ 2,147,483,647,但我只想要10,000,000,000美元。如何解决这个问题。
答案 0 :(得分:4)
使用long long
。假设9,223,372,036,854,775,807美元就足够了。
NSNumber* number = [NSNumber numberWithLongLong:[textFieldString longLongValue]];
NSString* numberString = [numberFormatter stringFromNumber:number];
你可以使用
[numberFormatter setCurrencySymbol:@"$"];
而非-stringWithFormat:
添加美元符号。
答案 1 :(得分:1)
http://en.wikipedia.org/wiki/Integer_(computer_science)#
你的价值是int,最大值。 int可以容纳的值是2147483647。 您必须使用其他类型,例如long。