Eu comecei a usar agora o eclipse e tenho que fazer um código usando saídas simples, só com println e printf mesmo, só que na hora de usar o printf sempre da erro. O estranho é que copiei o código pro Netbeans e funcionou perfeitamente. Só no eclipse que da erro mesmo. Já revisei o código todo e não consigo achar erro algum.
String product1 = "Computer";
String product2 = "Office desk";
byte age = 30;
int code = 5290;
char gender = 'F';
double price1 = 2100.0;
double price2 = 650.50;
double measure = 53.234567;
System.out.println("Products:");
System.out.printf("%s, which price is $ %.2f%n", product1, price1);
System.out.printf("%s, which price is $ %.2f%n", product2, price2);
System.out.println();
System.out.printf("Record: %d years old, code %d and gender: %c%n", age, code, gender);
System.out.println();
System.out.printf("Measure with eight decimal places: %.8f%n", measure);
System.out.printf("Rouded (three decimal places): %.3f%n", measure);
Locale.setDefault(Locale.US);
System.out.printf("US decimal point: %.3f%n", measure);
1 curtida
Recomendo dar uma olhada em System.out.format("", var);
Ex:
System.out.format("Sr(a). %s", nome);
Exception in thread “main” java.lang.Error: Unresolved compilation problems:
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, String, double)
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, String, double)
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, byte, int, char)
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, double)
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, double)
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, double)
at course.Program.main(Program.java:24)
Tentei desse jeito e retorna o mesmo erro
O uso da função System.out.printf é um pouco diferente. Eis a sintaxe e sua utilização correta:
System.out.printf( formato, dados de saída)
Formato obviamente descreve a saída, a saída são separadas por vírgula.
Os formatos sempre começam com “%”, e como eu disse a saída são separadas por vírgulas.
Repare que você a utiliza assim:
System.out.printf("Measure with eight decimal places: %.8f%n", measure);
O correto seria:
System.out.printf("\t%s%.8f", "Measure with eight decimal places", measure);
Obs: Você pode formatar o código acrescentando caracteres de escape:
\t = tabulação
\n = salto de linha
Opte por usar outras funções de impressão como a System.out.println() que é mais simples e fácil de usar;
Espero ter ajudado!
Mesmo colocando a formatação assim, ainda dá erro.
O estranho é que esse erro acontece só no Eclipse, no Netbeans roda perfeitamente. Será que o problema não é com o Eclipse?
Eu utilizo o Eclipse Photon 3.8, o professor do curso que estou fazendo, que deu esse exercício, utiliza o Eclipse Luna, com o código exatamente como o que eu postei aqui e no dele roda sem erros.
O erro pode ser no Compliance Level do seu projeto no Eclipse.
Para isso, clique com botão direito do mouse em cima do pacote do teu projeto -> Properties->Java Compiler. A partir daí, desmarque a caixa "Use compliance… "
Em “Compiler compliance level” seleciona na combo a versão 1.6 ou posterior.
Tem uma explicação muito boa sobre o Compliance Leve do Eclipse aqui: Stackoverflow - what-is-compiler-compliance-level-in-eclipse
Provavelmente vai resolver! 
3 curtidas
Funcionou certinho, muito obrigada!
1 curtida
Obrigado funcionou aqui tambem, Sucesso
1 curtida