En el siguiente codigo en el cual trato de utilizar dos tipos de variables , float como double (para tener un poco mas de entendimiento sobre el casteo), pero segun lo que lei en el libro de java(Fundamentos de Java de Herbert Schildt) y lo que entendi la unica diferencia entre un float y un double son los bits, 32 y 64 respectivamente. Teniendo esto en cuenta no deberia haber un problema al tratar de realizar operaciones entre ellos pero no es el caso. Hay una incrogruencia que me impide utilizar el convertidor como un float y al usar este como float debo castear celsius a float, siendo que este ya es un float. Hay algo que no estoy teniendo en cuenta por eso me pide el casteo de un dato que ya esta en lo solicitado ?
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner read = new Scanner(System.in);
System.out.println("Convertidor de Celsius a Farenheit:");
System.out.println("Porfavor Ingrese el Valor:");
float celsius =read.nextFloat();
double convertidor = (celsius*1.8)+32 ;
System.out.println("Los grados Celsius inicial = " + celsius);
System.out.println("Los grados convetidos a Farenheit " + convertidor);
}
}