Android: строковый формат с двойным значением
Мне нужно создать String с помощью Formater, чтобы отобразить некоторые значения double float. Я не понимаю, как его кодировать. Вот что я имею:
Double dWeightInKg = 100;
Double dWeightInLbs = 220:
String headerText = String.format("%.0f kg / %.0f lbs",Double.toString(dWeightInKg) , Double.toString(dWeightInLbs));
Я ищу следующий вывод:
100 kg / 220 lbs
Я получаю runtimeexception - badArgumentType (formater) на моей строке String.format.
Ответы
Ответ 1
%. 0f - это строка формата для float с 0 десятичными знаками.
Значения, которые вы передаете в String.format, являются String, String, когда это должно быть Double, Double.
Вам не нужно преобразовывать двойники в строки.
String headerText = String.format("%.0f kg / %.0f lbs", dWeightInKg, dWeightInLbs);
Ответ 2
Это должно работать,
DecimalFormat df = new DecimalFormat("#.##");
private String convertToFormat(double value){
return df.format(value);
}
Ответ 3
Вам не нужен Double.ToString(), так как ваш форматтер уже ожидает число. Попробуйте следующее:
String headerText = String.format("%.0f kg / %.0f lbs", dWeightInKg , dWeightInLbs);