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?
cevap
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
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.
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
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
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);
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;
Büyük sayı için alt çizgi kullanabilirsiniz. – Masudul
@Masud OP, kaynak kodu – Turing85
(http://docs.oracle.com/javase/tutorial/java/data/numberformat.html – bobwah