Например, %11.2lf в С++ становится %11.2f в Java.
Как насчет длинного формата?
С++ Эквивалент% ld в Java для String.format()
Ответ 1
Как вы, возможно, разработали, нет необходимости указывать флаг l. Согласно docs, десятичное целое определяется d точно так же, как в С++. Так что ответ просто %d.
Ответ 2
Используйте %d для десятичных знаков (long, int). Он работает нормально. Например:
System.err.println(String.format("%d", 193874120937489387L));
... будет печатать просто отлично. Подробнее читайте java.util.Formatter. %d будет принимать long, без проблем.