如何从UITextField获取十进制值?

时间:2011-09-05 09:09:24

标签: iphone objective-c

我的数据库在Sqlite中,字段名称是Amount with float datatype.now,amount的值是在textfiled中输入的。所以我的问题是如何从文本框中获取小数值?

5 个答案:

答案 0 :(得分:5)

float f = [myTextField.text floatValue];

请注意,您应该检查文本字段是否包含有效数字。来自NSString manual

  

接收者文本的浮点值为float,跳过字符串开头的空格。溢出时返回HUGE_VAL或-HUGE_VAL,下溢时返回0.0。如果接收者没有以浮点数的有效文本表示开头,则返回0.0。

此方法不会告诉您输入abc不是有效数字。

答案 1 :(得分:5)

试试这个:

float amount = [yourTextField.text floatValue];

<强> EDITED

是的,正如taskinoor所提到的,你应首先检查天气,你的文本字段是否包含任何字母。

检查,试试这个

    NSString *aString = @"22.60Hello";
    NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ"] invertedSet];

    if ([aString rangeOfCharacterFromSet:set].location != NSNotFound) 
    {
        NSLog(@"This string contains illegal characters");
    }

希望这会对你有所帮助。

答案 2 :(得分:4)

NSString *decimalvalue=[NSString stringWithString:[txtfield.text componentsSeparatedByString:@"."] objectAtIndex:1]];

答案 3 :(得分:4)

从文本框中获取值并存储在字符串中。您需要将此字符串转换为浮点值并插入数据库中。

这可能有效:

NSString *myString = (string initialization here);
float stringFloat = [myString floatValue];

答案 4 :(得分:3)

float decimalNum = [textfield.text floatvalue]