Hallo,
ich hätte zwei Fragen:
- 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);
}
}
- 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