конкатенация printf со строкой, заданной после аргумента, не работает

#java #printf #concatenation

#java #printf #конкатенация

Вопрос:

Я не могу отобразить слово «галлон», используя приведенный ниже код.

 paintNeeded = wallArea / PAINT_COVER;
      System.out.printf("Paint needed: %.6f", paintNeeded, "gallons");    
  

ОЖИДАЕМЫЙ РЕЗУЛЬТАТ:

 Paint needed: 0.514286 gallons
  

Ответ №1:

 System.out.printf("Paint needed: %.6f gallons", paintNeeded);
  

это то, что вам нужно.

У вас должна быть одна строка формата со всеми спецификаторами формата, за которой следуют аргументы, которые будут использоваться для этих спецификаторов.

Предоставленная вами строка формата без слова «галлоны», за которой следуют два аргумента, значение с плавающей запятой и строка, последняя, которая, безусловно, не будет использоваться. Вы могли бы попробовать:

 System.out.printf("Paint needed: %.6f %s", paintNeeded, "gallons");
  

но это кажется мне немного излишним.