calculo errado

Java

19/10/2013

//nesse código a var XV exibe sempre resultado errado no teste, tipo se o resultado real for 0.5 vai aparecer 0.0. segue o código abaixo

import java.util.Scanner; 
public class equacao 
{
public static void main (String Arg[])
{
Scanner input = new Scanner (System.in);
int a,b,c;
double x1,x2,xv,yv;
double rDelta,delta;
System.out.println ("!!!Calculo de equacao de 2º grau!!!");
System.out.print ("Valor de a:");
a = input.nextInt();
System.out.print ("Valor de b:");
b = input.nextInt();
System.out.print ("Valor de c:");
c = input.nextInt();
delta = Math.pow(b, 2) - (4*a*c); //math.pow is potencia
if (delta >= 0 && a != 0)
{
x1 = ((b*-1) + Math.sqrt(delta))/(2*a);
x2 = ((b*-1) - Math.sqrt(delta))/(2*a);//math.sqrt is raiz
xv = (-1)*b/(2*a); // problema no resultado aqui 
yv = (delta*-1)/(4*a);
System.out.print ("Valor de x1:");
System.out.println (x1);
System.out.print ("Valor de x2:");
System.out.println (x2);
System.out.print ("Valor de xv:");
System.out.println (xv);
System.out.print ("Valor de yv:");
System.out.println (yv);
}
else
{
System.out.print ("A raiz não possui solução");
}
}
}
Eliseu Mendes

Eliseu Mendes

Curtidas 0

Respostas

Eduardo Pessoa

Eduardo Pessoa

19/10/2013

qual a duvida.
GOSTEI 0
Jorge Cabral

Jorge Cabral

19/10/2013

O valor que vai para a variavel esta sendo arredondado, para resolver isso faça um cast:
xv = (double) (-1) * b / (2 * a); // usando um cast

GOSTEI 0
POSTAR