il valore di ritorno come lo vuoi lo sai perchè devi dichiarare la variabile per il risultato, quindi sai se intero, double...., poi cioè che ho spiegato è un comportamento generale da seguire per evitare conversioni inutili, quindi usare val quando la variabile risultato non è double ti porta ad una doppia conversione.