Làm thế nào để in ra dạng tiền tệ trong Java thường là một chủ đề không được chú ý đến. Làm thế nào để kết quả dạng tiền tệ được in ra theo tiêu chuẩn quốc tế?
Class java.text.NumberFormat được sử dụng để xuất kết quả ra dạng số. Nó điều khiển dấu chấm thập phân và chèn dấu phẩy. Ví dụ:
10000.1273333 –> 10,000.13
Nó cũng quan tâm đến vấn đề quốc tế hóa. Nhiều Locale sử dụng một khoảng trắng hoặc một dấu chấm để ngăn cách phần nghìn và một dấu phẩy để ngăn cách phần thập phân. Chẳng hạn, ở Hungary, ví dụ trên sẽ là:
10000.1273333 –> 10 000,13.
Tuy nhiên, class NumberFormat có thể làm được nhiều việc hơn. Nó có một thực thể Currency và thực thể này biết được là nó nên dùng biểu tượng gì để xuất kết quả ở dạng tiền tệ và làm thế nào để định dạng số. Ví dụ, 50000.25 ở Mỹ sẽ là:
$50,000.25.
Ở Hungary, sẽ là:
Ft50 000,250.
Cách dễ nhất để in giá trị là sử dụng Locale mặc định:
Locale loc = Locale.getDefault();
NumberFormat nf = NumberFormat.
getCurrencyInstance(loc);
System.out.println(nf.format(50444.423));
Bạn cũng có thể in ra tất cả định dạng Currency trong Locales:
import java.text.NumberFormat;
import java.util.Locale;
public class Currency
{
static public void main(String[] strs)
{
Locale[] locs = NumberFormat.
getAvailableLocales();
for(int i = 0; i < locs.length; i++)
{
NumberFormat nf = NumberFormat.
getCurrencyInstance(locs[i]);
System.err.print(locs[i]. getLanguage());
System.err.print(“_”);
System.err.print(locs[i]. getCountry());
System.err.print(“_”);
System.err.print(locs[i]. getVariant());
System.err.print(” “);
System.err.println(nf.format(50444.423));
}
}
}