Problemas com o método Printf

5 respostas
M

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)

at Exec228.main(Exec228.java:27)[/color]

gostaria que se alguém soubesse o que está ocorrendo pudesse me dar uma ajuda

5 Respostas

S

matheus coloca o código todo aí, pois aqui funcionou certinho!!

public class Print {
	public static void main(String args[]){
		int radius = 2;
		System.out.printf( "Diameter is %d\n", (2 * radius) ); // Exibe o diamêtro 
	}

}
D

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

Descupa a demora, andei ausente por trabalhos da escola segue ai o código completo

[color=green]import java.util.Scanner;

public class Exec228

{

// método principal inicia o aplicativo java

public static void main(String[] args)

{

// cria um Scanner para a entrada de valores do usuário

Scanner input = new Scanner(System.in);
int radius; // raio do círculo
	int diameter; // diamêtro do círculo
	double circunference; // circunferência do círculo
	double area; // área do círculo
	
	System.out.print( "Enter radius: " ); // prompt
	radius = input.nextInt(); // o raio digitado pelo usuário

[/color]

[color=red]System.out.printf( "Diameter is %d\n ", ( 2 * radius ) ); // calcula e exibe o diamêtro
	System.out.printf( "Circunference is %f\n", (( 2 * Math.PI )* radius) ); // calcula e exibe a circunferência
	System.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

Utilize as tags de code para colar código aqui:

import java.util.Scanner;

public class Exec228 {
	// método principal inicia o aplicativo java
	public static void main(String[] args) {
		// cria um Scanner para a entrada de valores do usuário
		Scanner input = new Scanner(System.in);

		int radius; // raio do círculo
		int diameter; // diamêtro do círculo
		double circunference; // circunferência do círculo
		double area; // área do círculo

		System.out.print("Enter radius: "); // prompt
		radius = input.nextInt(); // lê o raio digitado pelo usuário

		System.out.printf("Diameter is %d\n ", (2 * radius)); // calcula e
																// exibe o
																// diamêtro
		System.out.printf("Circunference is %f\n", ((2 * Math.PI) * radius)); // calcula
																				// e
																				// exibe
																				// a
																				// circunferência
		System.out.printf("Area is %f\n", (radius * radius)); // calcula e
																// exibe a área

	} // fim método principal
} // fim classe Exec228
D

Precisa converter explicitamente o
(radius * radius)
que é do tipo int (ou Integer) para float:

System.out.printf("Area is %f\n", (float)(radius * radius));

Ok?

Criado 4 de junho de 2008
Ultima resposta 6 de jun. de 2008
Respostas 5
Participantes 3