Ich bin ein totaler Anfänger in Java und habe da ein "Problem", eigentlich nur einen Schönheitsfehler bei meinem Programm.
Das Programm soll den Benutzer 2 Fahrenheitswerte eingeben lassen und dann eine Tabelle von dem ersten bis zu em zweiten Wert machen, wobei der Celsiuswert bei jedem Durchgang um 0.1 erhöht werden soll.
Das Programm funktioniert auch aber nach einigen gerechneten Einträgen in der Tabelle kommt auf einmal weit hinter dem Komma noch eine Zahl z.B. °C = 17.1000000005.
Ich will nun wissen warum am Ende der Zahl noch eine winzige Nachkommastelle kommt obwohl ich den Wert nur um 0.1 erhöhe.
public static void main(String[] args) throws IOException {
float fha; //Fahrenheit Anfang
float fhe; //Fahrenheit Ende
float ca;
BufferedReader stdIn;
String line;
stdIn = new BufferedReader (new InputStreamReader (System.in));
System.out.println("Programm zur tabellarischen Celsiusberechnung eines bestimmten Intervalls");
System.out.println("Geben sie den Anfangs-Fahrenheitswert an:");
line = stdIn.readLine();
fha = Float.parseFloat(line);
new BufferedReader (new InputStreamReader (System.in));
System.out.println("Geben sie den End-Fahrenheitswert an:");
line = stdIn.readLine();
fhe = Float.parseFloat(line);
ca = ((5*(fha-32))/9);
while (fha<fhe){
fha = ((ca*9)/5)+32;
System.out.println("°C = " + ca + "°F = " + fha);
ca =(float) (ca+0.1);
}
Das Programm soll den Benutzer 2 Fahrenheitswerte eingeben lassen und dann eine Tabelle von dem ersten bis zu em zweiten Wert machen, wobei der Celsiuswert bei jedem Durchgang um 0.1 erhöht werden soll.
Das Programm funktioniert auch aber nach einigen gerechneten Einträgen in der Tabelle kommt auf einmal weit hinter dem Komma noch eine Zahl z.B. °C = 17.1000000005.
Ich will nun wissen warum am Ende der Zahl noch eine winzige Nachkommastelle kommt obwohl ich den Wert nur um 0.1 erhöhe.
public static void main(String[] args) throws IOException {
float fha; //Fahrenheit Anfang
float fhe; //Fahrenheit Ende
float ca;
BufferedReader stdIn;
String line;
stdIn = new BufferedReader (new InputStreamReader (System.in));
System.out.println("Programm zur tabellarischen Celsiusberechnung eines bestimmten Intervalls");
System.out.println("Geben sie den Anfangs-Fahrenheitswert an:");
line = stdIn.readLine();
fha = Float.parseFloat(line);
new BufferedReader (new InputStreamReader (System.in));
System.out.println("Geben sie den End-Fahrenheitswert an:");
line = stdIn.readLine();
fhe = Float.parseFloat(line);
ca = ((5*(fha-32))/9);
while (fha<fhe){
fha = ((ca*9)/5)+32;
System.out.println("°C = " + ca + "°F = " + fha);
ca =(float) (ca+0.1);
}