NF.java

import java.util.Locale;
import java.text.NumberFormat;

// Fun with number formatting.
public class NF
{
    public static void main(String[] args)
    {
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMinimumFractionDigits(3);
        nf.setMaximumFractionDigits(7);

        // First two println()s should print 7 digits.
        // Third println() should print 3 digits.
        System.out.println(nf.format(Math.PI));
        System.out.println(nf.format(Math.E));
        System.out.println(nf.format(3.2));

        double x = 382.72;
        tryCurrency("     US",x,Locale.US);
        tryCurrency("     UK",x,Locale.UK);
        tryCurrency("Germany",x,Locale.GERMANY);
        tryCurrency(" France",x,Locale.FRANCE);
        tryCurrency("  Italy",x,Locale.ITALY);
        tryCurrency("  Japan",x,Locale.JAPAN);
    }

    static void tryCurrency(String label,double amount,Locale loc)
    {
        NumberFormat nf = 
            NumberFormat.getCurrencyInstance(loc);
        System.out.println(label + ": " + nf.format(amount));
    }
}