0

基本的な電卓を作成しようとしていますが、入力中にディスプレイ上の数値をフォーマットするのに問題があります。「99999」が「99,999」のように見えるように、NSNumberFormatter を使用して 3 桁ごとにコンマを入れています。

問題は、入力中に4桁以上表示されないことです...基本的に1桁にリセットされます。数字入力のコードは次のとおりです。

- (IBAction)digitPressed: (UIButton *)sender
{
    NSString *digit = sender.titleLabel.text;

        display.text = [display.text stringByAppendingString:digit];

        NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
        [numberFormatter setGroupingSeparator:@","];
        [numberFormatter setGroupingSize:3];
        [numberFormatter setUsesGroupingSeparator:YES];
        [numberFormatter setDecimalSeparator:@"."];
        [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
        NSString *theString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:[[display text] doubleValue]]];
        display.text = theString;
}
4

1 に答える 1

0

これらの方法が便利な場合があります。

- (void)setMaximumIntegerDigits:(NSUInteger)number;
- (void)setMaximumFractionDigits:(NSUInteger)number;

小数部の最大桁数を 6 など、必要に応じて設定できます。

[numberFormatter setMaximumFractionDigits: 6];
于 2013-03-27T10:16:47.783 に答える