De celsius a fahrenheit en JAVA

E

Buenas, me han mandado un ejercicio que me está resultando desesperante, no consigo que funcione.

Este me pide que escriba unos grados celsius y el programa debe pasarlo a fahrenheit, el calculo es sencillo, es solo multiplicar los grados celsius por 1,8 y sumarle 32.

El problema es que me obliga a usar unas líneas:
public class Excercise {
public static float convertCelsiusToFahrenheit(float celsiusTemp) {

}
}

De momento he hecho esto:
import java.util.Scanner;
public class Excercise {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Ingrese grados celsius" );
float celsiusTemp = input.nextFloat();
System.out.println(convertCelsiusToFahrenheit(float celsiusTemp));
}
public static float convertCelsiusToFahrenheit(float celsiusTemp) {
return (float)((celsiusTemp*1.8)+12);
}
}

Pero no me funciona, alguien podría resolverlo? muchas gracias, ya no sé que hacer..

B

No ves nada malo aquí?

System.out.println(convertCelsiusToFahrenheit(float celsiusTemp));
6 2 respuestas
E

Es ahí donde me da el error, pero ni idea... :S

2 respuestas
Spacelord

#3 Te da el error porque aquí:

public static float convertCelsiusToFahrenheit(float celsiusTemp) {

}

... te faltan cosas.

2 respuestas
SikorZ

Como dice #4 si llamas al metodo convertCelsiusToFahrenheit y en el no tienes codigo ninguno lo raro seria que funcionase...

public class Excercise {
public static float convertCelsiusToFahrenheit(float celsiusTemp) {
return celsiusTemp*1,8+32;
}
}

Prueba asi anda, si le mandas la temperatura en celsius y luego no haces nada con ella... como pretendes que funcione?

EDIT: Ese 1,8 quizas sea con punto

1 respuesta
elkaoD

#4 #5 sí tiene código (mirad abajo, eso vacío es el enunciado de su problema).

#3 una pista: ¿qué significa y para que sirve la palabra "float"?

1 respuesta
Spacelord

#6 Hostia, vale, al no verlo tabulado no lo he pillado. Está invocando al método antes de crearlo.

Edit: y si no me falla la memoria (hace un huevo que no uso println) no se puede hacer eso sin concatenar al menos un "", ¿no?

1 respuesta
elkaoD

#7 tampoco! Volved a leer #2 que es la clave.

#7 si, lo del println también. Buena cazada.

1 respuesta
Spacelord

#8 Sólo se me ocurre que no ha guardado el return del método en una variable float. Yo es que lo haría de otra forma:

public static float convertCelsiusToFahrenheit(float celsiusTemp) {
float fahrenheit = ((celsiusTemp*1.8)+12);
return farhenheit;
}

En dos líneas al menos yo lo veo más claro. Y luego invocaría la variable fahrenheit en el println.

Como no sea eso me voy a la cama, que acabo de terminar un assignment de un curso de Coursera bastante jodido y tengo la cabeza como un bombo. XDDDD

Todo por no abrir el Netbeans y picarlo, claro. XDD

1 respuesta
Gleim

#9 eso no es, el fallo está en la línea que puso #2 . Para ser más específico, en la llamada a la función. Revisando los apuntes verá que algo está mal :)

1 respuesta
Spacelord

#10 Claro, por eso digo que yo invocaría la variable del return en el println en vez de liarme con llamadas a función. El problema está en el parámetro de la función cuando la invoca, de ahí que yo prefiera invocar una variable en lugar del método.

1 respuesta
Fastestwat

Ya tienes el float que necesitas.

Amazon

Como te comes la cabeza #11 cuando el fallo es bastante claro xd

1 respuesta
Spacelord

#13 Nah, que llevo demasiadas horas con SML y ya no carburo bien. XDD

13500
float celsiusTemp = input.nextFloat();
System.out.println(convertCelsiusToFahrenheit(float celsiusTemp));

float celsiusTemp ya ha sido declarado. Prueba con:

System.out.println(convertCelsiusToFahrenheit(celsiusTemp));

Usuarios habituales