Eksi işaretiyle negatif USD para birimi değerlerini yazdırmak için NumberFormat.getCurrencyInstance()
nasıl edinebilirim?Eksi işareti ile birlikte negatif para birimi miktarını parantez içinde biçimlendirin (Java)
cevap
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.
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
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
Dene:
NumberFormat.getCurrencyInstance(Locale.CANADA);
NumberFormat.getCurrencyInstance(Locale.UK);
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ı? –