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.00. 数量还是101;它只是格式化为看起来像货币金额。

如果需要$1.01,您将不得不输入数字 1.01。数字格式化程序不会更改数字。它只是改变了它的显示方式。1.01 是一个数字;$1.01是表示为货币的数字。1.01 不等于 101。数字格式化程序不会改变您输入的数字,只是改变它的显示方式。

于 2013-08-03T23:57:43.277 回答