Я теперь, что этот ответ приходит слишком поздно ... но я надеюсь, что смогу помочь другим людям:
Android сосет с несколькими подстановками параметров, когда вы хотите десятичные числа и форматируйте это в общем стиле% a.bf
Лучшее решение, которое я нашел (и только для такого рода ресурсов), это поместить десятичные параметры в виде строк% n $ s, и в коде применить мое преобразование с помощью String.format (...)
Пример:
НЕПРАВИЛЬНЫЙ ПУТЬ:
// В XML-файле:
<string name="resource1">You has a desviation of %1$s and that is a %2$.2f%% percentage.</string>
// А в java файле
String sresult = getString(R.string.resource1, svalue, spercentage); // <-- exception!
Это решение является технически правильным, но неправильным из-за системы подстановки ресурсов Android, поэтому в последней строке будет сгенерировано исключение.
ПРАВИЛЬНЫЙ СПОСОБ / РЕШЕНИЕ:
Просто преобразуйте второй параметр в строку.
<string name="resource1">You has a desviation of %1$s and that is a %2$s percentage.</string>
А теперь в коде:
...
// This is the auxiliar line added to solve the problem
String spercentage = String.format("%.2f%%",percentage);
// This is the common code where we use the last variable.
String sresult = getString(R.string.resource1, svalue, spercentage);