2017-03-12 2 views
0

Ich habe versucht, dieses Programm für Stunden jetzt zu arbeiten. Ich habe es geschafft, die Fahrenheit auf Celsius umzustellen, um zu arbeiten, aber für das Leben von mir kann ich nicht dasselbe für Celsius bis Fahrenheit tun. Ich werde meinen Lehrer fragen, wann die Schule wieder anfängt, aber ab jetzt würde ich mich über Hilfe freuen. Hier ist mein Code.Kann Temperaturtabelle nicht in Java arbeiten

import java.util.Scanner; 

public class TempConvert { 
    public static void main(String[] args) { 
      //variables 
      double number; 
      int maxFahrenheit = 52; 
      int maxCelsius = 20; 

      Scanner keyboard = new Scanner(System.in); 

      //user input 
      System.out.println("Please enter 1 to convert from Fahrenheit to" + 
       " Celsius"); 
      System.out.println("Please enter 2 to convert from Celsius to" + 
       " Fahrenheit"); 
      number = keyboard.nextDouble(); 

      //if else 
      if (number == 1) { 
       System.out.println("Celsius\t\tFahrenheit"); 
       System.out.println("---------------------------"); 

       int i; 
       double c; 

       for (i = 0, c = 0; i <= maxCelsius; i++, c++) { 
        System.out.println(i + "\t\t" + 9 * (i + 32)/5); 
       } //end for 
      } //end if 
      else if (number == 2) { 
       System.out.println("Fahrenheit\t\tCelsius"); 
       System.out.println("-----------------------------------"); 

       int i; 
       double f; 

       for (i = 32, f = 32; i <= maxFahrenheit; i++, f++) { 
        System.out.println(i + "\t\t" + 5 * (f - 32)/9); 
       } //end for 
      } //end else if 
      else { 
       System.out.println("Entry is invalid"); 
      } //end else 

     } //end main 
} //end TempConvert 
+0

Sie sollten Ihre Compiler-Warnungen überprüfen. Der Wert der lokalen Variablen c wird nicht verwendet. – klutt

+0

Die Formel zum Umwandeln von Grad Celsius in Fahrenheit ist '1.8 * t_c + 32'. "9/5 = 1,8" aber "9 * 32/5 = 57,6". Sie verwenden also '1.8 * t_c + 57,6 ', was nicht korrekt ist. – andih

Antwort

0

Sie benötigen einen DecimalFormat df = new DecimalFormat verwenden ("# ####.");

Blick änderte ich Code wie folgt:

public static void main(String[] args) { 
    //variables 
    double number; 
    int maxFahrenheit = 52; 
    int maxCelsius = 20; 

    Scanner keyboard = new Scanner(System.in); 

    //user input 
    System.out.println("Please enter 1 to convert from Fahrenheit to" + 
    " Celsius"); 
    System.out.println("Please enter 2 to convert from Celsius to" + 
    " Fahrenheit"); 
    number = keyboard.nextDouble(); 

    //if else 
    if(number == 1) { 
    System.out.println("Celsius\t\tFahrenheit"); 
    System.out.println("---------------------------"); 

    int i; 
    double c; 

    for(i = 0, c = 0; i <= maxCelsius; i++, c++) { 
    System.out.println(i + "\t\t" + 9 * (i + 32)/5); 
    }//end for 
    }//end if 

    else if(number ==2) { 
    System.out.println("Fahrenheit\t\tCelsius"); 
    System.out.println("-----------------------------------"); 

    int i; 
    double f; 
    DecimalFormat df = new DecimalFormat("#.####"); 
    for(i = 32, f = 32; i <= maxFahrenheit; i++, f++) { 

    System.out.println(i + "\t\t" + df.format(5 * (f - 32)/9)); 
    }//end for 
    }//end else if 

    else { 
    System.out.println("Entry is invalid"); 
    }//end else 

    }//end main 
    }//end TempConvert 

Schauen Sie es besser funktioniert wie Google und wenn Sie diese in Google veröffentlichen werden Sie 42 Fahrenheit in Celsius

42 = 5,55556

sehen genau wie Ihr Werkzeug =)

+0

Thx für die schnelle Antwort. Die einzige Sache ist, wir haben noch nichts über diese Dinge in der Klasse gelernt. Ich dachte, dass ich vielleicht etwas Dummes falsch gemacht habe und es leicht wäre, darauf hinzuweisen. Alles, was ich wirklich weiß, sind Schleifen und wenn jetzt Statements. –

+0

Es ist in Ordnung pal =) du lernst, also solltest du das nicht wissen und yeah, es gibt eine Menge Änderungen, die wir an diesem Programm machen können, um es besser zu machen, aber mach weiter ...) Die Welt gehört dir und lies weiter lot =) alles, was ich helfen kann, würde ich sicher machen;) wenn das deine antwort gelöst hat, kannst du mir ein paar punkte geben? Bitte – Yussef

+0

Ich bin immer noch auf der Suche nach einer Antwort. Ich habe versucht, was Sie gesagt haben und ist gegen die Syntax. Es muss eine andere Lösung für das Problem geben, die mehr zu dem passt, was wir in der Klasse lernen:/ –