2015-04-21 30 views
5

100000000 sayısını yazdırmak istediğimi varsayalım. İlk bakışta, bu sayının kaç milyonu temsil ettiğini söylemek zor. 10 milyon ya da 100 milyon mu? Java'da büyük sayılar nasıl daha okunabilir görünüyor? Bunun gibi bir şey harika olurdu: 100 000 000. Hemen 100 milyon olduğunu söyleyebilirsin.İç int boş alan nasıl eklenir?

+0

Büyük sayı için alt çizgi kullanabilirsiniz. – Masudul

+0

@Masud OP, kaynak kodu – Turing85

+5

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

cevap

9

Ayrıca DecimalFormat deneyebilirsiniz;

DecimalFormat formatter = new DecimalFormat("#,###"); 
System.out.println(formatter.format(100000)); 

Sonuçlar:

1000>>1,000 
10000>>10,000 
100000>>100,000 
1000000>>1,000,000 
0

Bunun için muhtemelen bir dize kullanmak isteyeceksiniz. Bazı hesaplamalar yapmanız gerekiyorsa, yazdırılması gerekene kadar onu bir int olarak saklayın. Daha sonra yazdırılması gerektiğinde, bir dizgeye dönüştürün, dizgeyi istediğiniz gibi okunabilir hale getirin ve yazdırın.

3

Böyle deneyebilirsiniz:

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

Bu formatta

1,000,000 => 1.00M 
1,234,567 => 1.23M 

DÜZENLEMEYİ numaralarını görüntüler: -

Ben onun geç düzenlemeyi biliyorum ama evet orada bir başka yoldur:

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; 
} 
şöyle

Çağrı bu fonksiyon ve çıktıyı alırsınız:

201700 = 202k 
3000000 = 3m 
8800000 = 8.8m 
1

Bu diğer girişi için 100,000,000

yazdırır dize

DecimalFormat decimalFormat = new DecimalFormat("###,###,###"); 
    System.out.println(decimalFormat.format(100000000)); 

biçimlendirmek için ondalık biçimini kullanabilirsiniz - bu 1000 basacaktır 1000 say

2

DecimalFormat sınıfını kullanın, nasıl kullanılacağı ile ilgili bağlantıya bakın.

Seni temelde nasıl bir yaklaşım altında yaklaşık

DecimalFormat myFormatter = new DecimalFormat("### ### ###"); 
String output = myFormatter.format(value); 
System.out.println(output); 
0

ne gerek yazdım arama işlemlerini daha ama Java 7 ve sonraki sürümlerinde it's supported için:

int twoMillion = 2_000_000;

İlgili konular