Java Float ohne Nachkommastelle?
Hey,
ich habe einen Java-Code in der Schule und möchte, dass die letzte Ausgabe ohne Nachkommastellen ausgegeben wird.
Hier der Code:
import java.io.*;
public class Subtraktion {
public static void main(String argv[]) throws IOException {
float zahl1, zahl2, ergebnis;
String str;
BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Subtraktion zweier Zahlen");
System.out.print("Zahl1: ");
str = eingabe.readLine();
zahl1 = Float.parseFloat(str);
System.out.print("Zahl2: ");
str = eingabe.readLine();
zahl2 = Integer.parseInt(str);
ergebnis = zahl1 - zahl2;
System.out.println("Das Ergebnis der Subtraktion " + zahl1 + "-" + zahl2 + " ist " + ergebnis + "");
System.out.println("Programmende Subtraktion.");
} // end of main
} // end of class Benzinv
Danke
3 Antworten
Schreib bei der Ausgabe
+ (int) ergebnis +
anstatt
+ ergebnis +
Dann werden durch die Umwandlung zu einer Ganzzahl die Nachkommastellen abgeschnitten.
Caste zu int oder nutze printf.
Nein. Es geht um die Programmiersprache Java. Steht doch ganz dick im Tutel der Frage, erstes Wort.
Würde es trotzdem nicht eine Exception ausgeben? So weit ich weis würde das, aufgrund vom Format nicht gehen.
Nein, generell werden die Nachkommastellen dann einfach abgehackt. Ist bei anderen Sprachen auch so. Deshalb ergibt zum Beispiel in C++ 5/2 = 2.
Das hier könnte auch funktionieren.
Bei i gibst du dann einfach nur noch ein, wie viele Nachkommastellen die Zahl haben soll
int i = 2;
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(i);
System.out.println(df.format(decimalNumber));
Kannst du meinen Code vllt so überarbeitet schicken, weil ich nicht genau weiß wo ich das einfügen soll
public static void main(String argv[])throws IOException {
float zahl1,zahl2,ergebnis;
String str;
BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Subtraktion zweier Zahlen");
System.out.print("Zahl1: ");
str=eingabe.readLine();
zahl1=Float.parseFloat(str);
System.out.print("Zahl2: ");
str=eingabe.readLine();
zahl2=Integer.parseInt(str);
ergebnis=zahl1-zahl2;
System.out.println("Das Ergebnis der Subtraktion "+zahl1+"-"+zahl2+" ist:");
System.out.printf("%.2f", ergebnis);
System.out.println("Programmende Subtraktion.");
} // end of main
} // end of class Benzinv
Das hier würde auf 2 Kommastellen runden, wenn du keine haben willst, musst du nur bei printf("%.2f", ergebnis) die 2 mit einer 0 ersetzen.
würde das nicht eine Exception ausgeben?