Sto usando il seguente DecimalFormat
modello:Come posso modificare il comportamento di DecimalFormat in base alla lunghezza dell'input?
// Use ThreadLocal to ensure thread safety.
private static final ThreadLocal <NumberFormat> numberFormat =
new ThreadLocal <NumberFormat>() {
@Override protected NumberFormat initialValue() {
return new DecimalFormat("#,##0.00");
}
};
Questo esegue le seguenti conversioni:
1 -> 1.00
1.1 -> 1.10
1.12 -> 1.12
mi hanno ora un ulteriore requisito.
1.123 -> 1.123
1.1234 -> 1.123
Ciò significa che quando
- ci sono meno di due cifre decimali, lo farò "pad" a due cifre decimali.
- ci sono esattamente due o tre posizioni decimali, non farò nulla.
- ci sono più di tre posizioni decimali, troncerò a tre cifre decimali.
Posso specificare questo comportamento con la classe DecimalFormat
?
Questo è davvero è una soluzione elegante! –