stavo lavorando su un compito in cui mi ha colpito la gestione di uno scenario negativo di seguito indicateCome formattare una doppia con quantità variabile di cifre decimali
Se il valore è inferiore a 1 allora voglio formattare (aggiungi) 4 punti decimali ad esso.
Per esempio se il valore è 0,4567 poi ho bisogno di 0,4567
Oppure se il valore è maggiore di 1 formato con solo 2 cifre.
Ad esempio se il valore è 444,9 poi ho bisogno 444,90
Tutto quanto sopra menzionato funziona bene, ma colpito in questa sotto condizione
cioè se il valore è inferiore a 1 e termina come zeri (0.1000, 0.6000), non ha senso per stampare 0.2000, quindi in questo caso voglio l'uscita di essere solo come 0.20
Questo è il mio programma qui di seguito
package com;
import java.text.DecimalFormat;
public class Test {
public static void main(String args[]) {
try {
String result = "";
Test test = new Test();
double value = 444.9;
if (value < 1) {
result = test.numberFormat(value, 4);
} else {
result = test.numberFormat(value, 2);
}
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
public String numberFormat(double d, int decimals) {
if (2 == decimals)
return new DecimalFormat("#,###,###,##0.00").format(d);
else if (0 == decimals)
return new DecimalFormat("#,###,###,##0").format(d);
else if (3 == decimals)
return new DecimalFormat("#,###,###,##0.000").format(d);
else if (4 == decimals)
return new DecimalFormat("#,###,###,##0.0000").format(d);
return String.valueOf(d);
}
}
Una condizione basata su x < 1 || x > = 1, quindi se è <1 e termina con "00" tagliato fuori? –