Kay: Zahlenformate

Hallo,

ich hätte zwei Fragen:
1. Ich möchte eine double-Zahl (Ergebnis einer Division) runden lassen. Wenn ich die round-Funktion benutze, bekomme ich eine int-Zahl mit 0 Kommastellen heraus. Wie kann ich aber eine double-Zahl z.B. auf 2 oder 3 Kommastellen genau runden lassen?

2. Ich habe ein Datum als long-Wert vorliegen. Wie mache ich daraus eine Zeichenkette der Form dd.mm.yyyy?

Vielen Dank, Kay

  1. Hallo,

    ich hätte zwei Fragen:

    1. Ich möchte eine double-Zahl (Ergebnis einer Division) runden lassen. Wenn ich die round-Funktion benutze, bekomme ich eine int-Zahl mit 0 Kommastellen heraus. Wie kann ich aber eine double-Zahl z.B. auf 2 oder 3 Kommastellen genau runden lassen?

    import java.math.*;
    class test1 {
        public static void main(String[] args) {
            double d = 1.23456789;
            //runden auf 2 Stellen
            double dr = ((int)(d*1e2+.5))/(double)1e2;
            System.out.println(dr);
            //runden auf 3 Stellen
            dr = ((int)(d*1e3+.5))/(double)1e3;
            System.out.println(dr);
            //runden auf 4 Stellen
            dr = ((int)(d*1e4+.5))/(double)1e4;
            System.out.println(dr);

    //oder http://java.sun.com/j2se/1.3/docs/api/java/math/BigDecimal.html
            BigDecimal bd = new BigDecimal(d);
            //runden auf 2 Stellen
            BigDecimal bdr = bd.setScale(2, BigDecimal.ROUND_HALF_EVEN);
            System.out.println(bdr);
            //runden auf 3 Stellen
            bdr = bd.setScale(3, BigDecimal.ROUND_HALF_EVEN);
            System.out.println(bdr);
            //runden auf 4 Stellen
            bdr = bd.setScale(4, BigDecimal.ROUND_HALF_EVEN);
            System.out.println(bdr);
        }
    }

    1. Ich habe ein Datum als long-Wert vorliegen. Wie mache ich daraus eine Zeichenkette der Form dd.mm.yyyy?

    Zeige doch mal Dein Datum als long-Wert. Das kann ich mir nämlich nicht so recht vorstellen. Ansonsten:

    import java.util.*;
    import java.text.*;
    class test {
        public static void main(String[] args) {
            Date d = new Date();
            System.out.println(new SimpleDateFormat("E, dd.MM.yyyy").format(d));
        }
    }

    viele Grüße

    Axel

    1. Hallo,

      1. Ich habe ein Datum als long-Wert vorliegen. Wie mache ich daraus eine Zeichenkette der Form dd.mm.yyyy?
        Zeige doch mal Dein Datum als long-Wert. Das kann ich mir nämlich nicht so recht vorstellen.

      Könnte die Anzahl der Sekunden oder Millisekunden seit 1900 oder 1970
      sein. Könnte aber auch was ganz anderes sein.

      Die Klasse java.util.Date hat einen Konstruktor, der einen long-Wert
      annimmt. Dieser Wert muß die Anzahl der Millisekunden seit 1970
      beinhalten. Hat man einen Wert auf anderer Basis, muß man ggf. umrechen.

      Gruß
      Slyh

      1. Könnte die Anzahl der Sekunden oder Millisekunden seit 1900 oder
        1970 sein.

        Genauso ist es - vielen Dank für den Tipp!
        Hab's mit diesem Konstruktor hinbekommen.

        MfG, Kay

    2. Hi,

      vielen Dank für den Code - es läuft!!!

      MfG, Kay