Может ли метод expressionValueWithObject интерпретировать числа как числа с плавающей точкой вместо целых чисел?

Я делаю калькулятор, который регистрирует входные данные в метке с именем «inputLabel», а затем выводит ответ в другой метке с именем «outputLabel» (аналогично графическому калькулятору). Как только пользователь заканчивает ввод выражения, выражение сохраняется в объект NSString, а затем анализируется с помощью класса NSPredicate и оценивается с помощью класса NSExpression. Что у меня работает, но я заметил, что для определенных операций ответы не верны. Например, если пользователь вводит в «25/2» калькулятор возвращает 12, что, очевидно, неверно. Однако, если пользователь вводит «25 / 2.0» или «25.0 / 2», калькулятор возвращает 12.5, что мне и нужно. Похоже, что метод NSExpression 'expressionValueWithObject' интерпретирует операнды как целые числа вместо числа с плавающей точкой. Если это так, то есть ли способ изменить метод expressionValueWithObject, чтобы интерпретировать операнды как числа с плавающей точкой?

Brain.m

-(float)performCalculation: (NSString *)operation
{
    NSPredicate *parsed = [NSPredicate predicateWithFormat:[operation stringByAppendingString:@"=1.0"]];
    NSExpression *inputExpressionParsed = [(NSComparisonPredicate *)parsed leftExpression];
    NSNumber *result = [inputExpressionParsed expressionValueWithObject:inputExpressionParsed context:nil];

    return [result floatValue];
}

ViewController.m

- (IBAction)equalsPressed:(id)sender
{
    //self.inputLabel.text = [self.inputLabel.text stringByAppendingString:@".0"];
    NSString *inputExpression = self.inputLabel.text;
    self.inputLabel.text = [self.inputLabel.text stringByAppendingString:@"="];
    float result = [self.brain performCalculation:inputExpression];
    self.outputLabel.text = [NSString stringWithFormat:@"%g", result];
}

Ответы на вопрос(2)

Ваш ответ на вопрос