我有一个UITextField,用户可以输入一个十进制数字。
我假设输入是objectiv-c中的一个字符串,所以我将它转换为浮点数,但是我没有得到正确的十进制数,而是将一个浮点数舍入到较低的整数,即用户输入1,8和I得到1,000000
我的代码:
float groesse = [self.groesseTextField.text floatValue];
如何获得正确的1,8?
答案 0 :(得分:2)
您不应使用floatValue
将用户输入的号码解析为float
。您需要使用NSNumberFormatter
。数字格式化器将正确处理特定于语言环境的数字格式。 floatValue
仅适用于使用小数分隔符的句点而不使用其他标记(例如分组分隔符)的数字。 NSNumberFormatter
可以解决所有这些问题。
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSNumber *val = [formatter numberFromString:self.groesseTextField.text];
float groesse = [val floatValue];