2013-08-14 23 views

Antwort

52

Versuchen Sie, diese

// Create a DecimalFormat that fits your requirements 
DecimalFormatSymbols symbols = new DecimalFormatSymbols(); 
symbols.setGroupingSeparator(','); 
symbols.setDecimalSeparator('.'); 
String pattern = "#,##0.0#"; 
DecimalFormat decimalFormat = new DecimalFormat(pattern, symbols); 
decimalFormat.setParseBigDecimal(true); 

// parse the string 
BigDecimal bigDecimal = (BigDecimal) decimalFormat.parse("10,692,467,440,017.120"); 
System.out.println(bigDecimal); 

Wenn Sie eine Anwendung mit I18N Unterstützung bauen Sie verwenden sollten DecimalFormatSymbols(Locale)

Denken Sie auch daran, dass decimalFormat.parse kann ein Wurf ParseException so müssen Sie es zu handhaben (mit try/catch) oder es werfen und lassen ein anderer Teil Ihres Programms behandeln es

10

BigDecimal bietet einen String-Konstruktor. Sie müssen alle Kommas von der Nummer entfernen, über eine Regex oder String filteredString=inString.replaceAll(",","").

Sie rufen dann einfach BigDecimal myBigD=new BigDecimal(filteredString);

Sie auch eine NumberFormat und setParseBigDecimal(true) nennen erstellen können. Dann wird parse( Ihnen ein BigDecimal geben, ohne sich Gedanken über die manuelle Formatierung machen zu müssen.

21

Versuchen Sie, diese

String str="10,692,467,440,017.120".replaceAll(",",""); 
BigDecimal bd=new BigDecimal(str); 
+0

@jlordo ja ich habe meine Antwort bearbeitet –

Verwandte Themen