How to add empty space inside int?

2019-06-20 00:22发布

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.

6条回答
做个烂人
2楼-- · 2019-06-20 00:32

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);
查看更多
做自己的国王
3楼-- · 2019-06-20 00:34

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
查看更多
叛逆
4楼-- · 2019-06-20 00:36

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

int twoMillion = 2_000_000;

查看更多
Anthone
5楼-- · 2019-06-20 00:39

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.

查看更多
forever°为你锁心
6楼-- · 2019-06-20 00:41

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
查看更多
淡お忘
7楼-- · 2019-06-20 00:57

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

查看更多
登录 后发表回答