如何提取带有平方根符号的文本字段的值?目标-C.



我有一个程序可以计算一组特定的方程。用户将数字输入UITextField,程序为他们计算它。我想为用户提供插入平方根的选项,而不必先弄清楚平方根的确切值。

我的问题:当我尝试通过以下方式提取文本字段的浮点值时:

    floatNumber = [[textField text] floatValue];

具有平方根的文本字段返回 0。有没有办法用平方根提取数字?

谢谢尼尔。

假设您的可能嵌入到方程中...您需要在字符串中找到的位置。这将是您系列的开始。范围的长度将由位置 + 后面的数字计数定义。如果您只想要数字,则只需将位置增加 1。

您将有边缘情况需要处理,但这是一个开始:

    NSString *equation = @"(√646474)";
    NSRange rangeOfSqrRoot = [equation rangeOfString:@"√"];
    rangeOfSqrRoot = NSMakeRange(rangeOfSqrRoot.location + 1, (equation.length - 1) - rangeOfSqrRoot.location);
    __block NSCharacterSet *charSet = [NSCharacterSet decimalDigitCharacterSet];
    NSRange rangeOfNonNumber = [equation rangeOfCharacterFromSet:[charSet invertedSet] options:NSLiteralSearch range:rangeOfSqrRoot];
    rangeOfSqrRoot = NSMakeRange(rangeOfSqrRoot.location, rangeOfNonNumber.location - 2);
    __block NSMutableString *numbers = [NSMutableString string];
    [equation enumerateSubstringsInRange:rangeOfSqrRoot options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
        NSRange r = [substring rangeOfCharacterFromSet:charSet];
        if (r.location != NSNotFound) {
            [numbers appendString:substring];
        } else {
            *stop = YES;
        }
    }];
    NSLog(@"%@", numbers);
output: 646474

另外,您是否尝试过使用 NSExpression 来处理您的数学运算?http://nshipster.com/nsexpression/

前任:

NSExpression *expression = [NSExpression expressionWithFormat:@"4 + 5 - 2**3"];
NSLog(@"%@", [expression expressionValueWithObject:nil context:nil]);

注意:您无法执行[NSExpression expressionWithFormat:@"√25"] 。你会得到:NSInvalidArgumentException', reason: 'Unable to parse the format string "√25 == 1"'

相关内容

  • 没有找到相关文章

最新更新