Para lidar com conversões de temperatura, sua tabela de conversão deve ter um multiplicador e um deslocamento. Para F --> C, por exemplo, o deslocamento seria -32 e o multiplicador 5/9.
Se você conhece todas as unidades possíveis com antecedência, uma mensagem baseada em tabela funciona bem. No entanto, se você deseja um sistema totalmente flexível, como metros^5*litros para polegadas^5*galões, você precisará de uma tabela de unidades de baixo e uma função definida pelo usuário para fazer a conversão. Esta função provavelmente usaria um cte recursivo para analisar a expressão de unidades. Tudo isso seria bastante complicado, então espero que você tenha uma lista completa de unidades.