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

テキストフィールドの文字列値を送信すると、10000000000 が送信され、2,147,483,647 ドルしか返されませんが、10,000,000,000 ドルだけが必要です。この問題を解決する方法。

4

2 に答える 2

4

を使用しlong longます。これは、$9,223,372,036,854,775,807 で十分であると仮定しています。

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

ところで、あなたはちょうど使用できたかもしれません

[numberFormatter setCurrencySymbol:@"$"];

-stringWithFormat:ドル記号を追加する代わりに。

于 2012-09-05T10:38:51.163 に答える
1

http://en.wikipedia.org/wiki/Integer_(computer_science)#

値を int として、最大値を取得しています。int が保持できる値は 2147483647 です。long などの別の型を使用する必要があります。

この質問を確認してください: long integer value Objective-C

于 2012-09-05T10:35:17.237 に答える