ios - 使 NSNumberFormatter 始终将输入的最右边两位数视为小数部分

标签 ios objective-c cocoa-touch formatting nsnumberformatter

我觉得答案就在我面前,但我似乎找不到。

我的代码:

- (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,当我需要 $1.01 时它会显示为 $101.00 因此输入似乎是从小数点开始,而我希望它从百位开始小数点。

最佳答案

NSNumberFormater 接收一个数字 并根据您设置的任何样式格式化该数字。如果用户按照您的建议输入 101,那么 101 就是正在格式化的数字。您选择了货币样式,因此您得到了 $101.00。数量还是101;它只是格式化为看起来像货币金额。

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

关于ios - 使 NSNumberFormatter 始终将输入的最右边两位数视为小数部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18038337/

相关文章:

ios - 如何从包含我的 UIViewController 的 UITableViewController 中显示新 View ?

objective-c - Xcode 10 Objective-C#import 文件名完成不起作用

objective-c - 错误消息,不应从辅助线程调用UIKit

Objective-C 在运行时修改方法的参数

ios - Storyboard名称 :bundle: is allocating memory for stoyboard object?

objective-c - 在 View 之间滑动

ios - UIScrollView 不垂直滚动

ios - 是否可以使用 gomobile 呈现/查看 html?

objective-c - 指点一下,我使用得正确吗? Objective-c/ cocoa

iphone - 如何停止 UITableView 在顶部和底部的滚动?