2012-08-29 16 views
11

Potrzebuję utworzyć ciąg za pomocą Formatera, aby wyświetlić wartości podwójnego zmiennoprzecinkowe. Nie wiem, jak to zakodować. Oto co mam:Android: format ciągu z wartością podwójną

Double dWeightInKg = 100; 
Double dWeightInLbs = 220: 
String headerText = String.format("%.0f kg/%.0f lbs",Double.toString(dWeightInKg) , Double.toString(dWeightInLbs)); 

szukam następnego wyjścia:

100 kg/220 lbs 

dostaję RuntimeException - badArgumentType (formater) na mojej linii string.Format.

Odpowiedz

21

% .0f jest ciąg formatu dla pływaka, z 0 miejsc po przecinku.

Wartości przekazywane do String.format to String, String, gdy musi być Double, Double.

Nie musisz konwertować podwójnych na ciągi.

String headerText = String.format("%.0f kg/%.0f lbs", dWeightInKg, dWeightInLbs); 
+0

Dzięki za odpowiedź. Powinienem był wiedzieć lepiej! – wyoskibum

6

To powinno działać,

DecimalFormat df = new DecimalFormat("#.##"); 
private String convertToFormat(double value){ 

    return df.format(value); 
} 
+0

Dzięki za odpowiedź. To było naprawdę proste. – wyoskibum

2

Nie trzeba się Double.ToString() Ponieważ formater jest już spodziewa się numer. Wypróbuj to:

String headerText = String.format("%.0f kg/%.0f lbs", dWeightInKg , dWeightInLbs); 
+0

Dzięki za odpowiedź. Powinienem był spać na tym przed pytaniem !! – wyoskibum

Powiązane problemy