0

目の前に答えがあるような気がするのに、なかなか見つからない。

私のコード:

- (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ので、小数点の後に入力を開始するように見えます。

4

1 に答える 1

2

NSNumberFormater数値を受け取り、設定したスタイルに従ってその数値フォーマットします。あなたが示唆するように、ユーザーが101を入力した場合、101がフォーマットされる数値です。通貨スタイルを選択したので、. 数はまだ 101 です。通貨の金額のようにフォーマットされているだけです。$101.00

が必要な場合は$1.01、1.01 という数値を入力する必要があります。数値フォーマッタは数値を変更しません。表示方法が変わるだけです。1.01 は数値です。$1.01その数値は通貨として表されます。1.01 は 101 と等しくありません。数値フォーマッタは、入力された数値を変更するのではなく、表示方法だけを変更します。

于 2013-08-03T23:57:43.277 に答える