Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
dies ist mein erster Beitrag, ich hoffe ich bin hier richtig
Java:
import java.util.Scanner;
public class Aufgabe4{
public static void main(String[] args) throws Exception{
Scanner myScanner = new Scanner(System.in);
System.out.println("Gebe einen Wert in Grad Fahrenheit ein");
double Fahrenheit = myScanner.nextDouble();
double Celsius = (5.0 / 9) * (Fahrenheit - 32);
int CelsiusohneNachkomma = (int) Celsius;
System.out.println(Fahrenheit + " sind " + CelsiusohneNachkomma + " Grad Celsius");
Anbei ein Code den ich in Form unserer Vorlesung so verfasst habe, der in dieser Form auch funktioniert. Allerdings habe ich ein bisschen rumprobiert und mir sind Fehler aufgefallen, die ich nicht ganz nachvollziehen kann. Als Hintergrund: Wir sollten die Umwandlung erst ganz normal ausgeben und als Teilaufgabe dann so, dass es ohne Nachkommastelle angezeigt wird. Deswegen habe ich erst mit double gearbeitet.
1. Wenn ich anstatt 5.0 nur 5 eingebe spuckt er mir als Ergebnis immer die 0 aus, unabhängig von dem Wert.
2. Meine Doz. hat myScanner.nextInt() bei der Initialisierung von Fahrenheit) verwendet (sonst blieb die Zeile so) und spricht von einer automatische Typausweitung, dies funktioniert bei mir aber nicht.
Hmm, also bei mir kommt sowohl bei der 5, als auch bei 5.0, als Ergebnis -15 Grad Celsius raus. Selbst myScanner.nextInt(), kommt dasselbe raus. Natürlich wandelt er dann die 5 zu 5.0.
nicht 5.0 im Zähler der Division stehen hast, sondern 5. Also nicht, wenn du als User bei der Eingabeaufforderung "5.0" eingibst...
Wie @thecain schon sagte, liegt das an der Ganzzahldivision bei (5 / 9).
nicht 5.0 im Zähler der Division stehen hast, sondern 5. Also nicht, wenn du als User bei der Eingabeaufforderung "5.0" eingibst...
Wie @thecain schon sagte, liegt das an der Ganzzahldivision bei (5 / 9).
Ah, genau so meine ich das, sorry! Und was hat es jetzt mit nextInt auf sich? Ist es egal ob nextInt oder NextDouble, da ich das vorher schon als double deklariert habe?
Wenn du damit meinst, ob es einen Unterschied in der Berechnung macht, ob du der double Variablen `Fahrenheit` nun das Ergebnis von `myScanner.nextInt()` oder `myScanner.nextDouble()` bei Eingabe einer Ganzzahl zuweist, dann: nein, es macht keinen Unterschied. Es ist also egal.
Aber du kannst halt dann auch nur Ganzzahlen per Terminal eingeben.