2012-05-10 36 views
9

Tôi đã cố gắng thực hiện đơn vị tiền tệ thủ công. Đây là mã của tôiLàm cách nào để đặt tiền tùy chỉnh trong java?

DecimalFormat df = new DecimalFormat(); 
DecimalFormatSymbols dfs = new DecimalFormatSymbols(); 
dfs.setCurrencySymbol("$"); 
dfs.setGroupingSeparator('.'); 
dfs.setDecimalSeparator('.'); 
df.setDecimalFormatSymbols(dfs); 
System.out.println(df.format(3333454)); 

đầu ra Chương trình được

3.333.454

Tại sao các biểu tượng tiền tệ tôi đặt đã không xuất hiện?

Trả lời

23

Hãy thử điều này:

NumberFormat df = NumberFormat.getCurrencyInstance(); 
DecimalFormatSymbols dfs = new DecimalFormatSymbols(); 
dfs.setCurrencySymbol("$"); 
dfs.setGroupingSeparator('.'); 
dfs.setMonetaryDecimalSeparator('.'); 
((DecimalFormat) df).setDecimalFormatSymbols(dfs); 
System.out.println(df.format(3333454)); 
+0

nhờ anh chàng, nó hoạt động. Nhưng làm thế nào để loại bỏ 2 chữ số thập phân phía sau? – greenthunder

+1

Thêm 'df.setMaximumFractionDigits (0);' – mprivat

+0

Đây có vẻ là một giải pháp tuyệt vời !!!!! –

0

Bạn đã nói với DecimalFormat biểu tượng tiền tệ nào sẽ sử dụng khi nó phải định dạng đơn vị tiền tệ. Nhưng bạn đã không nói với nó để định dạng một loại tiền tệ. Mẫu mặc định được sử dụng bởi hàm tạo no-arg không có nghĩa là định dạng tiền tệ. Sử dụng một mẫu chuyên dụng cho điều đó.

The javadoc cho bạn biết mọi thứ bạn cần biết.

Các vấn đề liên quan