Subtracao de "PI"

4 respostas
P

Boa noite,
estou tentando fazer uma reducao de pi, porem ele esta dando resultados diferentes.
Observem o codigo:

public class ValDePi {
	private double pi;
	private int count, troca = 0;

	public void calculaPI() {
		for (count = 1; count < 52; count = count + 2) {
			//if (troca % 2 == 0) {
				pi =(double) Math.PI-(4/count);

				System.out.println((double)Math.PI-4/3+" "+pi+ " " + count);
				troca++;
			//} //else {
				
			//}

		}
	}
}

Observem que ao acontecer a reducao de pi-4/3(que da 1.3......)
Mas o estranho eh que um da um resultado e o outro da outro resultado.

Bom, nao estou entendendo onde errei :S

teria como alguem me da uma luz? :D

Valeu!

4 Respostas

L

Olá Pedro,

não entendi a sua dúvida. Você poderia dar mais detalhes, e colar a saída que você está recebendo pra cada valor de count e aonde vc acha que tah errado…

celso.martins

Cara, teu problema está no fato de que se você divide um inteiro por outro inteiro, no Java, você obtém um inteiro.

Assim, no seu algoritmo original, a partir da terceira iteração, você só obtinha ZERO.

O pulo do gato está em:

pi = Math.PI - (4.0/count);

Faça assim, deve resolver a sua dúvida. Deixe o + (4/count) para você visualizar o que estou te dizendo.

for (int count = 1; count < 52; count += 2) {
        	pi = Math.PI - (4.0/count);  
            System.out.println((Math.PI-(4/3)) + " " + pi + " " + count + " - " + (4/count));  
        }

Se quiser a doideira completa, faça assim:

double pi;  
for (double count = 1; count < 52; count += 2) {
      	pi = Math.PI - (4.0/count);  
        System.out.println((Math.PI-(4.0/3.0)) + " " + pi + " " + count + " - " + (4/count));  
}

Abraços.

P

caramba,
eh verdade.
Tem como eu fazer algum casting de algum tipo apenas para que ele me retorne algum valor que nao seja 0 ?

valeu :smiley:

P

opa! soh para esclarecer, consegui consertar colocando o count no double :smiley:

valeu !

Criado 21 de outubro de 2008
Ultima resposta 22 de out. de 2008
Respostas 4
Participantes 3