如何从UITextField获取十进制值?

Dev*_*per 1 iphone objective-c

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

tas*_*oor 5

float f = [myTextField.text floatValue];
Run Code Online (Sandbox Code Playgroud)

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

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

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


Mau*_*lik 5

试试这个 :

float amount = [yourTextField.text floatValue];
Run Code Online (Sandbox Code Playgroud)

EDITED

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

检查,试试这个

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

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

希望这对你有所帮助.