Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use DecimalFormat to format money?

The input looks like 8.7000000 and I want to format it to look like 8.70 EUR. I considered using the DecimalFormat class:

Double number = Double.valueOf(text);

DecimalFormat dec = new DecimalFormat("#.## EUR");
String credits = dec.format(number);

TextView tt = (TextView) findViewById(R.id.creditsView);
tt.setText(credits);

The result is 8.7 EUR. How can I tell the formatter to have two digits after the .?

like image 416
UpCat Avatar asked Dec 21 '11 13:12

UpCat


2 Answers

I think a good option would be this aproach:

Using #,###.00 the result for the value 0.50 would be displayed like this:

$.50

However, if you use #,##0.00 the result for the same value would be:

$0.50

like image 127
Cícero Moura Avatar answered Oct 09 '22 16:10

Cícero Moura


I found a nice solution in this link below

http://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html

in short to represent a currency like 92323345465.30 as 92,323,345,465.30 just use ###,###,###,###.00

That is, whenever you use '0', then the '0' will either be replaced by another digit, or if there is no digit to replace it, then IT WILL APPEAR! But is you use '#' then if there is no number to replace the '#', then that space will be empty.

Remember that you can even add up your own symbols like $, etc in front of the formatting or even after the formatting string

like image 44
Jesse Avatar answered Oct 09 '22 17:10

Jesse