Display currencyTag(s): Internationalization String/Number
Using Java Money (JSR-354)
Since Java Money is not included in the JRE, you need include a reference in a POM.
<dependency> <groupId>org.javamoney</groupId> <artifactId>moneta</artifactId> <version>1.4.4</version> <type>pom</type> </dependency>
import java.util.Locale;
// https://javamoney.github.io/ri.html
import org.javamoney.moneta.Money;
import javax.money.MonetaryAmount;
import javax.money.format.MonetaryFormats;
public class CurrencyTest {
public static void main(final String... args) {
final MonetaryAmount amount = Money.of(123.45, "EUR");
System.out.println(MonetaryFormats.getAmountFormat(Locale.GERMANY).format(amount));
System.out.println(MonetaryFormats.getAmountFormat(Locale.US).format(amount));
/* output
* 123,45 EUR
* EUR123.45
*/
}
}
import java.math.BigDecimal;
import java.text.NumberFormat;
import java.util.Locale;
public class CurrencyLegacyTest {
public static void main(String[] args) {
BigDecimal amount = new BigDecimal(123.45);
String germany = NumberFormat.getCurrencyInstance(Locale.GERMANY).format(amount);
String us = NumberFormat.getCurrencyInstance(Locale.US).format(amount);
System.out.println(germany);
System.out.println(us);
// use german number format but specify US currency
java.text.NumberFormat format =
java.text.NumberFormat.getCurrencyInstance(java.util.Locale.GERMANY);
java.util.Currency usd = java.util.Currency.getInstance("USD");
format.setCurrency(usd);
System.out.println(format.format(amount));
/* output
* 123,45 €
* $123.45
* 123,45 $
*/
}
}
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com