2012-11-01 30 views
5

Tôi muốn tránh sử dụng Locale và thay vào đó sử dụng mã tiền tệ (ISO 4217, như "USD"). Tôi hiểu làm thế nào để thiết lập một loại tiền tệ với mã tiền tệ, tuy nhiên, làm thế nào tôi có thể kết hợp loại tiền tệ này vào nói một NumberFormat để định dạng một đôi để nói tiền tệ?Tôi làm cách nào để nạp Mã tiền tệ ISO4217 vào một NumberFormat?

Tôi hiểu cả Mã số và Đơn vị tiền tệ một cách riêng biệt, nhưng làm cách nào tôi có thể kết hợp chúng với định dạng tăng gấp đôi thành chuỗi tiền thật chẳng hạn như 4.00 -> $ 4.00? Tôi phải sử dụng NumberFormat, khi tôi thả các chữ số thập phân để tạo các số liệu tiền tệ như $ 4 trong ví dụ này.

Cảm ơn bạn đã giúp đỡ của bạn, Ryan

EDIT: trả lời, .setCurrency, đây là những gì tôi không để ý trong NumberFormat, doh! Tôi đã quá tập trung vào việc xây dựng NumberFormat với tiền tệ, nhưng tôi đã đấu tranh vì bạn chỉ có thể xây dựng từ một miền địa phương. Ước gì tôi nghĩ về điều này trước đó. Cảm ơn! Lần sau tôi sẽ đọc danh sách phương pháp gần hơn. Tôi KNEW NumberFormat HAD để hỗ trợ một loại tiền tệ, nó chỉ có ý nghĩa để sử dụng tiền tệ trong thời trang này.

+0

Và vui lòng không nhận xét về việc tôi sử dụng Doubles cho tiền tệ, tôi không cần độ chính xác. Cảm ơn. – AutoM8R

Trả lời

3

Điều này sẽ cho phép bạn hiển thị số tiền bằng đơn vị tiền tệ nhất định cho đơn vị tiền tệ gần nhất. Tôi đã không thử nghiệm nó nhưng nghĩ rằng nó là 95% đúng.

double amount = ...; 
String currencyCode = ...; 
Currency currency = Currency.getInstance(currencyCode); 
NumberFormat format = NumberFormat.getCurrencyInstance(); 
format.setMaximumFractionDigits(0); 
format.setCurrency(currency); 
String formattedAmount = format.format(amount); 
2

Các bạn đã thử đoạn mã sau:

NumberFormat nf = NumberFormat.getCurrencyInstance(); 
    String currencyCode = "USD"; 
    nf.setCurrency(Currency.getInstance(currencyCode)); 
    double currencyAmmount = 4.00; 
    String formattedValue= nf.format(currencyAmmount); 

Từ đoạn code trên tôi đã $4.00 và tôi cho rằng đây là những gì bạn mong đợi.

Tôi đoán điều quan trọng nhất ở đây là sử dụng NumberFormat.getCurrencyInstance() thay vì NumberFormat.getInstance().

+0

Cảm ơn bạn, một câu trả lời hợp lệ khác. Bạn chỉ cần bỏ lỡ thực tế tôi đã giảm số thập phân. – AutoM8R

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