Ola a todos, bem sou iniciante em java e começei a ler o livro Java - Como Programar 6ª Edição
ao longo de minha leitura e resolução dos exercicios propostos, surgiu um problema com este método citado no livro, segue abaixo a descrição do problema
instrução: [color=green]System.out.printf( “Diameter is %d\n”, (2 * radius) );[/color] // Exibe o diamêtro
obs : int radius;
mensagem de erro: [color=red]Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, int)
atExec228.main(Exec228.java:27)[/color]
gostaria que se alguém soubesse o que está ocorrendo pudesse me dar uma ajuda
matheus coloca o código todo aí, pois aqui funcionou certinho!!
publicclassPrint{publicstaticvoidmain(Stringargs[]){intradius=2;System.out.printf("Diameter is %d\n",(2*radius));// Exibe o diamêtro }}
D
dionat4nPJ
Ele esperta por um Object mesmo, só não está fazendo a conversão de int para Integer…
Estranho.
Tente usar JVM mais atual.
M
matheusnunesPJ
Descupa a demora, andei ausente por trabalhos da escola segue ai o código completo
[color=green]import java.util.Scanner;
publicclassExec228{// método principal inicia o aplicativo javapublicstaticvoidmain(String[]args){// cria um Scanner para a entrada de valores do usuárioScannerinput=newScanner(System.in);
[color=red]System.out.printf("Diameter is %d\n ",(2*radius));// calcula e exibe o diamêtroSystem.out.printf("Circunference is %f\n",((2*Math.PI)*radius));// calcula e exibe a circunferênciaSystem.out.printf("Area is %f\n",(radius*radius));// calcula e exibe a área[/color]
[color=green] } // fim método principal
} // fim classe Exec228[/color]
quanto a JVM estou usando a versão 5 do jdk pro estarem alguns problemas com há 6
D
dionat4nPJ
Utilize as tags de code para colar código aqui:
importjava.util.Scanner;publicclassExec228{// método principal inicia o aplicativo javapublicstaticvoidmain(String[]args){// cria um Scanner para a entrada de valores do usuárioScannerinput=newScanner(System.in);intradius;// raio do círculointdiameter;// diamêtro do círculodoublecircunference;// circunferência do círculodoublearea;// área do círculoSystem.out.print("Enter radius: ");// promptradius=input.nextInt();// lê o raio digitado pelo usuárioSystem.out.printf("Diameter is %d\n ",(2*radius));// calcula e// exibe o// diamêtroSystem.out.printf("Circunference is %f\n",((2*Math.PI)*radius));// calcula// e// exibe// a// circunferênciaSystem.out.printf("Area is %f\n",(radius*radius));// calcula e// exibe a área}// fim método principal}// fim classe Exec228
D
dionat4nPJ
Precisa converter explicitamente o
(radius * radius)
que é do tipo int (ou Integer) para float:
System.out.printf("Area is %f\n",(float)(radius*radius));