grundlegende java-Temperatur-Konverter
So, ich bin versucht zu schreiben Sie ein Programm zur Konvertierung von Grad C zu F oder Umgekehrt. Jedes mal, wenn ich das Programm starte, erhalte ich Fehler, die ich nicht leicht erklären. Zum Beispiel, konvertiert 100 C 132 F. Es wandelt 212 F 0 C. Meine Bekehrung Formeln sind richtig. Kann jemand mir einige Hinweise? Ich habe versucht, deklarieren die Schwimmer in der Klasse, außerhalb der Haupt -, aber es hat nicht geholfen.
import java.util.Scanner;
public class TempConverter{
public static void main(String [] args)
{
float f, c;
f = c = 0;
int a;
Scanner scan = new Scanner (System.in);
System.out.println("Press 1 for C->F or 2 for F->C");
a = scan.nextInt();
if (a == 1)
convertCtoFAndPrint();
else
convertFtoCAndPrint();
}
public static void convertFtoCAndPrint()
{
f = c = 0;
Scanner scan = new Scanner (System.in);
System.out.println("Please enter degrees F");
f = scan.nextFloat();
c = (5/9)*(f-32);
System.out.println(f + " degrees F is " + c + " degrees C.");
}
public static void convertCtoFAndPrint()
{
Scanner scan = new Scanner (System.in);
System.out.println("Please enter degrees C");
c = scan.nextFloat();
f = c*(9/5)+32;
System.out.println(c + " degrees C is " + f + " degrees F.");
}
}
- Was sind die Fehler, die Sie sehen? Auch der code wie gepostet nicht kompilieren.
- Sollten Sie post in: codereview.stackexchange.com
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schreiben Sie:
Aber
c
ist einfloat
.Das problem ist, dass
5 /9
ist ein integer-division, dessen Ergebnis immer 0.Ähnlich:
hier
9 /5
wird immer 1 sein. Und c wird gegossen, um eineint
.Müssen Sie schreiben
5.0
,9.0
etc.float f, c;
ist falsch.