2010-01-13 11 views

cevap

21

Hep bir java sınıfında veya fmt aracılığıyla kullanarak sona biridir

DecimalFormat format = new DecimalFormat("$#,##0.00;$-#,##0.00"); 
String formatted = format.format(15.5); 

Her zaman en az bir $ 0,00 üretir ve görüntülendiğinde tutarlıdır. Ayrıca gerektiğinde binlerce ayırıcı içerir. İhtiyacınız ise eksi işaretini dolar işaretinin önüne taşıyabilirsiniz.

2

Varsayılana güvenmek yerine belirli bir format istiyorsanız, kendi DecimalFormat'u oluşturmanız muhtemelen en iyisidir.

Düzenleme: Muhtemelen de DecimalFormat için NumberFormat.getCurrencyInstance() sonucunu döküm ve tercihlerinize ayarlamak olabilir. FormatNumber JSTL etiketi: Burada

+0

Muhtemelen haklısınız, ama benim uygulama gerekir f yerel olarak ormat para birimi. Tüm bu yöreler için biçimlendirmeyi uygulamak çok zor olmaz mıydı? –

30

Yerel olarak bağımsız bir şekilde yapmak için NumberFormat.getCurrencyInstance() tarafından döndürülen DecimalFormat öğesinin küçük bir şekilde ayarlanmasını gerektirir. Burada (Android üzerinde test) did ne:

DecimalFormat formatter = (DecimalFormat)NumberFormat.getCurrencyInstance(); 
String symbol = formatter.getCurrency().getSymbol(); 
formatter.setNegativePrefix(symbol+"-"); // or "-"+symbol if that's what you need 
formatter.setNegativeSuffix(""); 

IIRC, Currency.getSymbol() tüm sistemler için tüm yerel ayarlar için bir değer döndürmez olabilir, ama büyük olanlar için çalışması gerekir (ve bunu üzerine makul bir yedeği olduğunu düşünüyorum kendisine ait, siz) bir şey yapmak zorunda olmamalıdır yüzden

1

Dene:

NumberFormat.getCurrencyInstance(Locale.CANADA);

0
NumberFormat.getCurrencyInstance(Locale.UK); 
İlgili konular