为什么float从UITextField输入的字符串转换为较低的整数?

时间:2014-02-20 21:11:30

标签: ios objective-c string casting floating-point

我有一个UITextField,用户可以输入一个十进制数字。

我假设输入是objectiv-c中的一个字符串,所以我将它转换为浮点数,但是我没有得到正确的十进制数,而是将一个浮点数舍入到较低的整数,即用户输入1,8和I得到1,000000

我的代码:

float groesse = [self.groesseTextField.text floatValue];

如何获得正确的1,8?

1 个答案:

答案 0 :(得分:2)

您不应使用floatValue将用户输入的号码解析为float。您需要使用NSNumberFormatter。数字格式化器将正确处理特定于语言环境的数字格式。 floatValue仅适用于使用小数分隔符的句点而不使用其他标记(例如分组分隔符)的数字。 NSNumberFormatter可以解决所有这些问题。

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSNumber *val = [formatter numberFromString:self.groesseTextField.text];
float groesse = [val floatValue];