Ich bin mit den folgenden DecimalFormat
Mustern:Wie kann ich das DecimalFormat-Verhalten basierend auf der Eingabedauer ändern?
// Use ThreadLocal to ensure thread safety.
private static final ThreadLocal <NumberFormat> numberFormat =
new ThreadLocal <NumberFormat>() {
@Override protected NumberFormat initialValue() {
return new DecimalFormat("#,##0.00");
}
};
Die folgenden Konvertierungen durchführt:
1 -> 1.00
1.1 -> 1.10
1.12 -> 1.12
Ich habe jetzt eine zusätzliche Anforderung.
1.123 -> 1.123
1.1234 -> 1.123
Das bedeutet, dass, wenn
- gibt es weniger als zwei Dezimalstellen, ich will "pad" auf zwei Dezimalstellen.
- gibt es genau zwei oder drei Dezimalstellen, ich werde nichts tun.
- gibt es mehr als drei Dezimalstellen, ich werde auf drei Dezimalstellen abgeschnitten.
Kann ich dieses Verhalten mit der Klasse DecimalFormat
angeben?
, die wirklich eine elegante Lösung ist! –