Czy metoda „expressionValueWithObject” może interpretować liczby jako liczby zmiennoprzecinkowe zamiast liczb całkowitych?

Tworzę kalkulator, który rejestruje dane wejściowe w etykiecie o nazwie „inputLabel”, a następnie wyświetla odpowiedź w innej etykiecie o nazwie „outputLabel” (podobnej do kalkulatora graficznego). Po zakończeniu wprowadzania wyrażenia użytkownik jest przechowywany w obiekt NSString, a następnie parsowany z klasą NSPredicate i oceniany za pomocą klasy NSExpression. Co mam działa, ale zauważyłem dla poszczególnych operacji odpowiedzi niepoprawne, na przykład, jeśli użytkownik wpisze „25/2”, kalkulator zwraca 12, co jest oczywiście niepoprawne, jednak jeśli użytkownik wpisze „25 / 2.0” lub „25,0 / 2”, kalkulator zwraca 12,5, co jest tym, czego chcę. Wydaje się, że metoda NSExpression „expressionValueWithObject” interpretuje operandy jako Jeśli w takim przypadku, czy istnieje sposób, aby zmienić metodę 'expressionValueWithObject', aby interpretować argumenty jako zmiennoprzecinkowe?

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];
}

questionAnswers(2)

yourAnswerToTheQuestion