No vas a poder. O sea, necesitás hacerte un parser para poder seccionar la funcion en partes y poder interpretarla.

Para eso vas a tener que armarte una tablita de precedencia de operadores para ver cual tiene mas peso. La precedencia de un operador indica qué tan "cerca" se agrupan dos expresiones. Por ejemplo, en la expresión 1 + 5 * 3, la respuesta es 16 y no 18, ya que el operador de multiplicación tiene una mayor precedencia que el operador de adición. Los paréntesis pueden ser usados para marcar la precedencia, si resulta necesario. Por ejemplo: (1 + 5) * 3 es 18.

Una vez que tenés eso, spliteas la función por los operadores, casteas los numeros a float y dependiendo del operador le decís que haga tal operación comparando en un case.

Para cálculos numéricos supongo que podés ahorrarte mucho trabajo sacando de la función sólo los valores que te hagan falta, pero te va a quedar algo muy acotado... o sea, no vas a poder meterle cualquier función esperando que funcione joya.