Nehmen wir an, ich möchte die Nummer 100000000 drucken. Auf den ersten Blick ist es schwierig zu sagen, wie viele Millionen diese Zahl darstellt. Sind es 10 Millionen oder 100 Millionen? Wie kann ich große Zahlen in Java lesbarer machen? So etwas wäre zum Beispiel großartig: 100 000 000
. Sie können sofort sagen, dass die Zahl 100 Millionen ist.Wie füge ich Leerzeichen innerhalb von int hinzu?
Antwort
Sie können auch DecimalFormat versuchen;
DecimalFormat formatter = new DecimalFormat("#,###");
System.out.println(formatter.format(100000));
Ergebnisse:
1000>>1,000
10000>>10,000
100000>>100,000
1000000>>1,000,000
Sie werden wahrscheinlich nur einen String dafür verwenden wollen. Wenn Sie einige Berechnungen durchführen müssen, behalten Sie sie einfach als int, bis sie gedruckt werden müssen. Dann, wenn es gedruckt werden muss, wandeln Sie es in eine Zeichenkette um, verarbeiten Sie die Zeichenkette so, dass sie lesbar ist, wie Sie möchten, und drucken Sie sie aus.
Sie können wie folgt versuchen:
String.format("%.2fM", yourNumber/ 1000000.0);
Diese
die Zahlen im Format angezeigt werden1,000,000 => 1.00M
1,234,567 => 1.23M
EDIT: -
Ich weiß, es ist ein Ende bearbeiten, aber ja, es ist ein weiterer Weg:
private static String[] suff = new String[]{"","k", "m", "b", "t"};
private static int MAX_LENGTH = 4;
private static String numberFormat(double d) {
String str = new DecimalFormat("##0E0").format(d);
str = str.replaceAll("E[0-9]", suff[Character.getNumericValue(str.charAt(str.length() - 1))/3]);
while(str.length() > MAX_LENGTH || str.matches("[0-9]+\\.[a-z]")){
str = str.substring(0, str.length()-2) + str.substring(str.length() - 1);
}
return str;
}
Diese Funktion
Anruf und Sie erhalten die Ausgabe erhalten, wie folgt:
201700 = 202k
3000000 = 3m
8800000 = 8.8m
Sie Dezimalformat die Zeichenfolge
DecimalFormat decimalFormat = new DecimalFormat("###,###,###");
System.out.println(decimalFormat.format(100000000));
Dieser Druck wird 100.000.000
Für andere Eingabe formatieren können - sagen 1000 es 1000 drucken:
Verwenden Sie die DecimalFormat Klasse, siehe den Link für die Verwendung.
So speichern Sie die Suche habe ich geschrieben, was man im Grunde
DecimalFormat myFormatter = new DecimalFormat("### ### ###");
String output = myFormatter.format(value);
System.out.println(output);
, wie etwa unter Ansatz brauchen, aber it's supported in Java 7 und späteren Versionen:
int twoMillion = 2_000_000;
Sie können Unterstrich für große Zahl verwenden. – Masudul
@Masud OP möchte weiße Leerzeichen hinzufügen, wenn die Nummer gedruckt wird, nicht im Quellcode – Turing85
https://docs.oracle.com/javase/tutorial/java/data/numberformat.html – bobwah