我正在尝试从文本字段中获取用户输入并将其格式化为核心数据的双精度值。目前,我的代码如下:
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *weightDouble = [numberFormatter numberFromString:@"weight.text"];
但是,如果我打印weightDouble,我得到0,如果我从UI输入中打印出文本,我得到正确的数字。对我在这里做错的任何想法吗?我在构建时没有错误,它可以正常运行并保存良好(无论输入如何,都保存为0)
最佳答案
首先:
(如果'weight
'是UITextField
)
NSNumber *weightDouble = [numberFormatter numberFromString:weight.text];
使用
numberFromString:@"weight.text"
,您将获得文本'weight.text'的值,该值实际上为0。但是为什么不只是
double weightDouble = weight.text.doubleValue
? (除了本地化问题)关于cocoa-touch - NSNumberFormatter:字符串为Double,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8371509/