Java Float ohne Nachkommastelle?

3 Antworten

Schreib bei der Ausgabe

+ (int) ergebnis +

anstatt

+ ergebnis +

Dann werden durch die Umwandlung zu einer Ganzzahl die Nachkommastellen abgeschnitten.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

Caste zu int oder nutze printf.

Woher ich das weiß:Hobby – Ich programmiere in meiner Freizeit mit Java.
crafter32  09.03.2022, 11:07

würde das nicht eine Exception ausgeben?

0
MrAmazing2  09.03.2022, 11:12
@crafter32

Nein. Es geht um die Programmiersprache Java. Steht doch ganz dick im Tutel der Frage, erstes Wort.

1
crafter32  09.03.2022, 11:16
@MrAmazing2

Würde es trotzdem nicht eine Exception ausgeben? So weit ich weis würde das, aufgrund vom Format nicht gehen.

0
Dultus, UserMod Light   09.03.2022, 11:24
@crafter32

Nein, generell werden die Nachkommastellen dann einfach abgehackt. Ist bei anderen Sprachen auch so. Deshalb ergibt zum Beispiel in C++ 5/2 = 2.

1

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));
knolly555 
Fragesteller
 09.03.2022, 11:17

Kannst du meinen Code vllt so überarbeitet schicken, weil ich nicht genau weiß wo ich das einfügen soll

0
crafter32  09.03.2022, 11:26
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
0
crafter32  09.03.2022, 11:27
@crafter32

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.

0