Double Wert auf 2 Kommastellen runden?

dTP

Mitglied
Hallo
kann mir bitte jemand sagen wie man einen double wert auf 2 kommastelln runden?

also ein wert wie 23.46422500555 auf 23.46
 
Beste Antwort
B
Code:
double d = 2.3445635634567;
NumberFormat n = NumberFormat.getInstance();
n.setMaximumFractionDigits(2); // max. 2 stellen hinter komma
System.out.println(n.format(d));

Griffin

Bekanntes Mitglied
Eine Methode kenne ich jetzt nicht. (Müsste es aber eigentlich geben)
Rechne doch einfach:
Code:
gerundet = Math.round(deineZahl * 10) / 10;
 

dTP

Mitglied
also ich hab das so gemacht:
es werden aber trotzdem alles stellen ausgegeben

double fl=0.0;
fl = ((Math.pow(radius,2) * Math.PI)*100);
Math.round(fl);
fl /= 100;
return fl;
 

L-ectron-X

Gesperrter Benutzer
Ich habe das mal so für ein anderes Programm vor langer Zeit gelöst. Es ist sicher nicht der eleganteste Code, funktioniert dafür aber vollständig.
Code:
    //auf zwei Stellen nach dem Komma runden 
    public double rundeBetrag(double betrag) 
    { 
      double round = Math.round(betrag*10000); 
      round = round / 10000; 
      round = Math.round(round*1000); 
      round = round / 1000; 
      round = Math.round(round*100); 
      return round / 100; 
    }
 

Kerberus

Bekanntes Mitglied
Und sonst verwende diese Methode :)
Code:
public double round(double zahl, int stellen) {
  return (double) ((int)zahl + (Math.round(Math.pow(10,stellen)*(zahl-(int)zahl)))/(Math.pow(10,stellen)));
}
 
B

bygones

Gast
Code:
double d = 2.3445635634567;
NumberFormat n = NumberFormat.getInstance();
n.setMaximumFractionDigits(2); // max. 2 stellen hinter komma
System.out.println(n.format(d));
 
Beste Antwort

L-ectron-X

Gesperrter Benutzer
OK, das schneidet aber nur die Ziffern bis auf zwei Stellen nach dem Komma ab.
Fehlt immer noch die Rundung. Oder sehe ich das falsch?
 

meez

Top Contributor
Rundet der Numberformater eigentlich?
Ich denke er schneidet "nur" die vorigen Stellen ab...
???:L



EDIT: Mist zu langsam...:D
 
B

bygones

Gast
L-ectron-X hat gesagt.:
OK, das schneidet aber nur die Ziffern bis auf zwei Stellen nach dem Komma ab.
Fehlt immer noch die Rundung.
nicht ganz richtig:
Code:
double d1 = 2.3415635634567;
double d2 = 2.3495635634567;
NumberFormat n = NumberFormat.getInstance();
n.setMaximumFractionDigits(2);
System.out.println(n.format(d1));
System.out.println(n.format(d2)););
Ausgabe:
Code:
2,34
2,35
 

friedolin

Mitglied
Hallo,

mit der folgenden Methode möchte ich Var bmi auf eine NachkommaZahl gerundet wiedergeben.
Das ausgeben auf der Konsole klappt auch, nur kann ich diesen Wert
keiner Variablen zuweisen. Wenn ich die Zeile
Code:
//bmiGerundet = n.format(bmi);
nicht auskommentiere bekomme ich einen
"incompatible types"-Fehler, bei compilieren im JCreator,
auf genau diese Zeile, kann mir da jmd helfen?

Code:
private double BMIBerechnen(){

		double groessem, bmi, bmiGerundet;
		
		groessem = groesse / 100;
		bmi = gewicht / (groessem * groessem);

		NumberFormat n = NumberFormat.getInstance();
		n.setMaximumFractionDigits(1); // max. 2 stellen hinter komma
		
		System.out.println(n.format(bmi));
		//bmiGerundet = n.format(bmi);
		
		return bmi;
				
	}
 

friedolin

Mitglied
Vielen Dank, daran lags.

Da ich den Wert später jedoch noch benötige, muss ich ihn als double haben.

Mit
double dBmi = Double.parseDouble(strBmi);

komm ich hier nur leider nicht weiter, wahrscheinlich weil
ein Komma im String vorkommt. Gibts dafür ne Lösung...?
 

mic_checker

Top Contributor
Wird NumberFormatException ausgelöst oder was?
Normalerweise müsste er mit "." ja keine Probs haben - bei "," wird wahrscheinlich besagte Exception ausgelöst.
 
G

Guest

Gast
Ja, habs grad getestet. Es kommt zu einer NFE:

Code:
		try{
			double konBmi = Double.parseDouble(strBmi);
		}
		catch(NumberFormatException nfe){
			System.out.println("nfe");
		}

Was kann ich da machen?
 

Neue Themen


Oben