2013-05-15 12 views
5

Aşağıdaki kod kullanılarak yaptığım #. ## çift numaralı numaramı biçimlendirmek istediğim bir Android uygulaması geliştiriyorum . BMI 2497,227216676656 ise, bu örneğin, gayet iyi çalışıyor donanım dili İngilizce (varsayılan dil) olarak ayarlanır test ederken(android) decimalformat, "#. ##" ile biçimlendirirken tamama yerine virgül kullanır

Double BMI = ((fWeight)/(dHeight*dHeight)); 
DecimalFormat df = new DecimalFormat("0.00"); 
String sBMI = df.format(BMI); 

, bu 2497.23 için SBMI biçimlendirir, ama dil Fransızca seçilirse onu biçimlendirir 2497,23. DOT yerine, benim app çökmesini COMMA kullanılıyor!

Bunun nedeni nedir?

cevap

8

bu deneyin:

Double BMI = ((fWeight)/(dHeight*dHeight)); 
DecimalFormat df = new DecimalFormat("0.00"); 
DecimalFormatSymbols dfs = new DecimalFormatSymbols(); 
dfs.setDecimalSeparator('.'); 
df.setDecimalFormatSymbols(dfs); 
String sBMI = df.format(BMI); 
+0

Çalışıyor. Anında cevap verdiğiniz için teşekkürler. – Toral

+0

@Toral, eğer işe yararsa cevabı kabul etmeli ve cevap vermelisiniz. – mike47

0

Doğru formatı almak için fabrika statik yöntem değil yapıcı kullanmalıdır.

DecimalFormat df = DecimalFormat.getInstance(Locale.US); 

ABD yerel ayarını kullanmak, tüm biçimlendirilmiş verilerin doğru biçimde oluşturulacağından emin olacaktır.

İlgili konular