How to add empty space inside int?

2019-06-20 00:25发布

问题:

Let's say I want to print the number 100000000. At first sight it is difficult to tell how many millions this number is representing. Is it 10 million or 100 million? How can I make big numbers in Java look more readable? Something like this for instance would be great: 100 000 000. You can tell right away that the number is 100 million.

回答1:

You can also try DecimalFormat;

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

Results:

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


回答2:

You can try like this:

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

This will display the numbers in the format

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

EDIT:-

I know its a late edit but yes there is one more way:

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

Call this function and you will get the output as follows:

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


回答3:

You can use decimal format to format the string

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

This will print 100,000,000

For other input - say 1000 it would print 1,000



回答4:

Use the DecimalFormat class, see the link for how to use.

To save you searching I have written what you basically need

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


回答5:

You will probably just want to use a string for this. If you need to do some calculations simply keep it as an int until it needs to be printed. Then when it needs to be printed convert it to a string, process the string so that its as readable as you would like, and print it.



回答6:

how about below approach, but it's supported in Java 7 and later versions:

int twoMillion = 2_000_000;