user3051834
user3051834

Reputation: 271

How to add Comma between numbers

I have this code for my calculator:

            public void onClick(View v) {

            try {

                double price = Double.parseDouble(InputPrice.getText()
                        .toString());
                double percent = Double.parseDouble(InputPercent.getText()
                        .toString());

                double priceValue = price * percent / 100.0f;
                double percentValue = price - priceValue;

                PriceToGet.setText(String.valueOf(priceValue));
                PriceToPay.setText(String.valueOf(percentValue));

                PriceToGet.setText(String.format("%.02f", priceValue));
                PriceToPay.setText(String.format("%.02f", percentValue));

The Input and the Output are coming without commas like this:

Input: 333333333

Output: 134555.44

Output: 17475.66

This was just an example for Output and Input.

How do I like the user see them is:

Input: 333,333,333

Output: 134,555.44

Output: 17,475.66

Thanks

Update:

I added decimal in my onclick code:

                    DecimalFormat formatter = new DecimalFormat("#,###,###"); 

I used this code but its closing the App after I press the button:

                    String PriceToGet = formatter.format(String.format("%.02f", priceValue));

And when I am using this method:

                    String PriceToGet = formatter.format("%.02f", priceValue);

Its force me to change it to:

String PriceToGet = formatter.format(priceValue);

What to do?

Upvotes: 1

Views: 4569

Answers (3)

ryandawkins
ryandawkins

Reputation: 1545

This is how you can convert one of your integers to strings.

int x = 1000000;
DecimalFormat formatter = new DecimalFormat("#,###,###"); 
String number_string = formatter.format(x);
System.out.println(number_string);
// Outputs 1,000,000

Upvotes: 2

Jon
Jon

Reputation: 6541

This JS function from Css Tricks - http://css-tricks.com/snippets/javascript/comma-values-in-numbers/

 function CommaFormatted(amount) {
    var delimiter = ","; // replace comma if desired
    var a = amount.split('.',2)
    var d = a[1];
    var i = parseInt(a[0]);
    if(isNaN(i)) { return ''; }
    var minus = '';
    if(i < 0) { minus = '-'; }
    i = Math.abs(i);
    var n = new String(i);
    var a = [];
    while(n.length > 3) {
        var nn = n.substr(n.length-3);
        a.unshift(nn);
        n = n.substr(0,n.length-3);
    }
    if(n.length > 0) { a.unshift(n); }
    n = a.join(delimiter);
    if(d.length < 1) { amount = n; }
    else { amount = n + '.' + d; }
    amount = minus + amount;
    return amount;
}

Upvotes: -3

gilonm
gilonm

Reputation: 1859

You need to use DecimalFormat

You will find the complete answer here

Upvotes: 2

Related Questions