5

I'm surprised that I'm having real trouble finding how to do this. It seems to me it should be pretty straightforward. Perhaps I'm looking in the wrong place.

Suppose I have the following code:

double amount = 123.45D; //yes, I know that I should be using longs
Locale uk = Locale.UK;
Locale fr = Locale.FR;
Currency euro = Currency.getInstance("EUR");

How do I get instances of NumberFormat that let me print out the 123.45 value correctly formatted for the Locale? ie I want the following for the UK and France respectively :

€123.45
123,45 €

I can't use NumberFormat.getCurrencyInstance(Locale) as that will format the UK format as Sterling (£). What I am looking for is NumberFormat.getCurrencyInstance(Locale, Currency), but that doesn't seem to exist.

Any ideas?

Rich
  • 15,602
  • 15
  • 79
  • 126

1 Answers1

4

Use NumberFormat.setCurrency() to modify the currency used for a specific NumberFormat acquired via NumberFormat.getCurrencyInstance(Locale).

Joachim Sauer
  • 302,674
  • 57
  • 556
  • 614