2015-04-21 6 views
5

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?

+0

Sie können Unterstrich für große Zahl verwenden. – Masudul

+0

@Masud OP möchte weiße Leerzeichen hinzufügen, wenn die Nummer gedruckt wird, nicht im Quellcode – Turing85

+5

https://docs.oracle.com/javase/tutorial/java/data/numberformat.html – bobwah

Antwort

9

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 
0

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.

3

Sie können wie folgt versuchen:

String.format("%.2fM", yourNumber/ 1000000.0); 

Diese

die Zahlen im Format angezeigt werden
1,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 
1

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:

2

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); 
0

, wie etwa unter Ansatz brauchen, aber it's supported in Java 7 und späteren Versionen:

int twoMillion = 2_000_000;