double wert auf 2 kommastellen runden?

  1. #1
    dTP


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

    also ein wert wie 23.46422500555 auf 23.46

  2. #2
    Griffin


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

  3. #3
    dTP


    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;

  4. #4
    L-ectron-X


    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; 
        }

  5. #5
    bygones

    ausgabe geht über das http://java.sun.com/j2se/1.5.0/docs/...berFormat.html

    da kannst du sagen wieviele stellen vor / nach dem komma angezeigt werden sollen

  6. #6
    Kerberus


    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)));
    }

  7. #7
    dTP


    Zitat Zitat von deathbyaclown
    ausgabe geht über das http://java.sun.com/j2se/1.5.0/docs/...berFormat.html

    da kannst du sagen wieviele stellen vor / nach dem komma angezeigt werden sollen
    also ich hab das durchgesehn aber leider nichts gefunden
    könntest du mir vielleicht ein kurzes Bsp zeigen?

  8. #8
    bygones

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

  9. #9
    L-ectron-X


    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?

  10. #10
    meez


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




    EDIT: Mist zu langsam...

  11. #11
    bygones

    Zitat Zitat von L-ectron-X
    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

  12. #12
    L-ectron-X


    Klasse! Wieder was gelernt.

  13. #13
    meez


    Zitat Zitat von L-ectron-X
    Klasse! Wieder was gelernt.
    dito...

  14. #14
    friedolin


    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;
    				
    	}

  15. #15
    mic_checker


    Afaik gibt format() einen String zurück, aber du weisst es nem double zu.
    Musst also schauen das du das noch in Double parst.

  16. #16
    friedolin


    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...?

  17. #17
    mic_checker


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

  18. #18

    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?

  19. #19
    Bleiglanz


    Locale berücksichtigen (Deutsch)

    java.util.text anschauen

    DecimalFormat ...


Keine Antwort auf Deine Suche gefunden? Registriere Dich kostenlos und stelle Deine eigene Frage zu Java!

Jetzt kostenlos registrieren