ich an einer Aufgabe zu arbeiten, wo ichWie ein Doppel mit variabler Betrag von Dezimalstellen zu formatieren
unten, um ein negatives Szenario Behandlung Wenn der Wert kleiner als 1 ist, dann möchte ich (add) zu formatieren erwähnt geschlagen wurde 4 Dezimalpunkte dazu.
Zum Beispiel, wenn der Wert 0,4567 ist dann brauche ich 0,4567
Oder aber, wenn der Wert größer als 1-Format mit nur 2 Ziffern.
Zum Beispiel, wenn der Wert 444,9 dann brauche ich 444,90
Alles oben erwähnt funktioniert gut, aber dazu weiter unten Bedingung schlug
Das heißt, wenn der Wert kleiner als 1 ist, und es endet als Nullen (0.1000, 0.6000), Es macht keinen Sinn 0,2000 zu drucken, so dass in diesem Fall, dass ich die Ausgabe nur sein will als 0,20
das ist mein Programm unter
istpackage 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);
}
}
Eine Bedingung basierend auf x < 1 || x > = 1, dann, wenn es <1 ist und mit "00" endet, schneiden sie ab? –