Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur dans mon programme de Convertion.

Dans la methode convertirTemperatures.

Sujet résolu
    31 octobre 2008 à 0:31:19

    Bonjour à tous ! ^^

    Alors voici mon code :

    public class ConvertisseurTemperatures {
    	
    	
    	
    	public int convertirTemperatures(int temperature, char convertirEn){
    				
    		int temperatureConverti;
    		char conversionEn;
    		
    		temperatureConverti= temperature;
    		conversionEn= convertirEn;
    		
    		if (conversionEn == 'F'){
    			temperatureConverti= temperatureConverti × 1,8 + 32;
    			System.out.println("Cela fait "+ temperatureConverti+ " Fahrenheit");
    		}
    		else if (conversionEn == "C"){
    			temperatureConverti= (temperatureConverti ? 32) / 1,8;
    			System.out.println("Cela fait "+ temperatureConverti+ " Celsius");
    		}
    		else{
    			System.out.println("Ecrit soit C pour convertir en celcius" +
    					" soit F pour convertir en Fahrenheit et pas autre chose !");
    		}
    		
    		return temperatureConverti;
    		
    	}
    
    	
    	
    	public static void main(String[] args) {
    		
    		ConvertisseurTemperatures temperatureAConvertir= new ConvertisseurTemperatures();
    		
    		temperatureAConvertir.convertirTemperatures(0, 'F');
    		temperatureAConvertir.convertirTemperatures(212, 'C');
    
    	}
    
    	
    	
    }
    



    L'erreur ce trouve dans la methode "convertirTemperatures" mai je la trouve pas (je vois pas c'est quoi mon erreur) :( .

    Pouvez vous me dire quelle est mon erreur ? :euh:

    Merci d'avance ! ;)
    • Partager sur Facebook
    • Partager sur Twitter
      31 octobre 2008 à 9:21:24

      Alors 2 choses que je ne comprends pas:
      Pourquoi dans tes if, l'un est 'F' et l'autre "C" ?
      Ensuite, je ne comprends pas le ? de ton calcul pour C
      • Partager sur Facebook
      • Partager sur Twitter
        31 octobre 2008 à 9:43:48

        Bonjour, pour pour les 'C' et le 'F' j'aimageine tout simplement que c'est Celsius et Fahrenheit.

        Sinon pour les calculs effectivement je ne comprends pas non plus le × et le ? voila ce que je ferais :

        public class ConvertisseurTemperatures 
        {
        
        	public int convertirTemperatures(int temperature, char convertirEn)
        	{	
        		int temperatureConverti;
        		char conversionEn;
        		
        		temperatureConverti= temperature;
        		conversionEn= convertirEn;
        		
        		if (conversionEn == 'F')
        		{
        			temperatureConverti= (int)(temperatureConverti * 1.8 + 32);
        			System.out.println("Cela fait "+ temperatureConverti+ " Fahrenheit");
        		}
        		else if (conversionEn == 'C')
        		{
        			temperatureConverti= (temperatureConverti - 32) * 5 / 9;
        			System.out.println("Cela fait "+ temperatureConverti+ " Celsius");
        		}
        		else
        		{
        			System.out.println("Ecrit soit C pour convertir en celcius" +
        					" soit F pour convertir en Fahrenheit et pas autre chose !");
        		}
        		
        		return temperatureConverti;
        		
        	}
        
        	
        	
        	public static void main(String[] args) {
        		
        		ConvertisseurTemperatures temperatureAConvertir= new ConvertisseurTemperatures();
        		
        		temperatureAConvertir.convertirTemperatures(0, 'F');
        		temperatureAConvertir.convertirTemperatures(212, 'C');
        
        	}
        
        }
        


        voir même :

        public class ConvertisseurTemperatures 
        {
        
        	public static double celsiusToFahrenheit( double t )
        	{
        		return t * 1.8 + 32;
        	}
        
        	public static double fahrenheitToCelsius( double t )
        	{
        		return (t -32)*5/9;
        	}	
        	
        	public static void main(String[] args) 
        	{
        		System.out.println(" 20 °C -> "+celsiusToFahrenheit(20)+" F ");
        		System.out.println(" 68 F -> "+fahrenheitToCelsius(68)+" °C ");
        	}
        
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
          31 octobre 2008 à 9:51:42

          Attention également,

          Ta variable temperatureConverti est de type int (entier donc) et tu lui assignes des calculs qui semblent être des calculs renvoyant un résultat "double" (nombre à virgule). Il faut soit faire un cast, soit changer le type de ta variable.

          De plus, un nombre à virgule s'écrit avec un "." en java, pas une ",") :)


          EDIT : Ha, j'ai pris trop de temps à rédiger ^^. On a posté entre temps ^^.
          • Partager sur Facebook
          • Partager sur Twitter
            31 octobre 2008 à 10:49:48

            j'avais compris les lettres, je parlais du ' puis du "
            leonsulivan +1 pour la 2e solution
            • Partager sur Facebook
            • Partager sur Twitter
              31 octobre 2008 à 12:44:24

              Merci à vous, j'ai compris mon erreur. ;)

              Je savai que c'étai dans le calcul (j'ai un peut abusé), faut que je regarde plus attentivement mon code la prochaine foi !

              Car en faite je suis parti sur wikipédia pour écrire le calcul de convertion mai eu la multiplication c'est un x alors quand java c'est une * et j'avais pas remarquer non plus la virgule au lieu du point.

              par contre à coi serre le (int) dans l'attribu temperatureConverti ?

              Encore merci ! ;)

              ps: En même temps à l'heure que j'ai tapé mon code..... :-°

              • Partager sur Facebook
              • Partager sur Twitter
                31 octobre 2008 à 12:59:56

                C'est parce que temperatureConverti est de type int, mais comme dans ton calcul tu fais une multiplication par 1.8 ce qui ne donne pas forcément un entier. (int) force le résultat de ton calcul à être un int.
                • Partager sur Facebook
                • Partager sur Twitter

                Erreur dans mon programme de Convertion.

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown