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);