2015-04-21 23 views
5

Załóżmy, że chcę wydrukować numer 100000000. Na pierwszy rzut oka trudno jest stwierdzić, ile milionów reprezentuje ta liczba. Czy to 10 milionów czy 100 milionów? Jak sprawić, by duże liczby w Javie wyglądały na bardziej czytelne? Coś takiego na przykład byłoby wspaniałe: 100 000 000. Od razu możesz stwierdzić, że liczba ta wynosi 100 milionów.Jak dodać pustą przestrzeń wewnątrz int?

+0

Możesz użyć podkreślenia dla dużej liczby. – Masudul

+0

@Masud OP chce dodać białe spacje podczas drukowania numeru, a nie w kodzie źródłowym – Turing85

+5

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

Odpowiedz

9

Możesz także spróbować DecimalFormat;

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

Wyniki:

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

Najprawdopodobniej po prostu chcesz użyć do tego ciągu. Jeśli chcesz wykonać pewne obliczenia, po prostu zachowaj je jako int, dopóki nie zostanie wydrukowane. Następnie, kiedy trzeba go wydrukować, przekonwertuj go na ciąg, przetwórz ciąg tak, aby był czytelny, jak chcesz, i wydrukuj go.

3

Możesz spróbować tak:

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

To spowoduje wyświetlenie liczby w formacie

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

EDIT: -

Wiem, że późno zmienił jednak tak nie to jeszcze jeden sposób:

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; 
} 

wywołać tę funkcję, a dostaniesz wyjście następująco:

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

Można użyć formatu dziesiętnego do formatowania String

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

To wydrukować 100.000.000

Na drugie wejście - powiedzmy 1000 byłoby wydrukowanie 1000

2

Skorzystaj z klasy DecimalFormat, zobacz link, aby dowiedzieć się, jak używać.

Aby zapisać może szukają Pisałem to, co w zasadzie trzeba

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

jak o poniżej podejścia, ale it's supported w Java 7 i późniejszych wersjach:

int twoMillion = 2_000_000;