2012-01-26 11 views

cevap

40

BigDecimal Constructor geçerli bir sayısal dizi alır.

Yaylı gösterimi isteğe bağlı bir işaret '+' ('\ u002B') veya bundan oluşur '-' sıfır veya fazla ondalık hane bir dizi (ardından ('\ u002D'), " isteğe bağlı olarak bir fraksiyonu, ardından bir üsle takip edilen bir tamsayı ").

String salePrice = "$348.00"; 
String price = salePrice.replace("$",""); 
BigDecimal sPrice = new BigDecimal(price); 
System.out.println(sPrice); 

Çıktı = 348.00

Ayrıca NumberFormat sınıfında bakabilirsiniz. Bu sınıfı kullanarak karşılık gelen Locale'u ayarlayabilirsiniz.

String salePrice = "$123.45"; 
Locale locale = Locale.US; 
Number number = NumberFormat.getCurrencyInstance(locale).parse(salePrice); 
System.out.println(number); 

Çıktı = 123.45

+0

neyi dize değeri "" null veya eğer. setproperty sadece bigDecimal kabul eder. – JNPW

+0

'null' değerini bigDecimal yapıcısına geçiremezsiniz. Özel durumu yakalamak için kodumu "try-catch" etrafında sarın. – RanRag

+0

+1 bu bana bugün yardımcı oldu. – Brian

8

ilk dolar işareti ($) kaldırın:

BigDecimal sPrice = new BigDecimal(salePrice); 

aşağıda bu durum alma sona erdi.

+6

bir dolar büyük bir ondalık değil bugünlerde – Pedantic

3

Yapıcı, dizede bir Sayı gerektirir; dizginiz geçerli bir sayı olmayan $ ile başlar. İlk önce onu çıkarmalısın.

İlgili konular