Erro Compilação / Equação 2 Grau

1. Erro Compilação / Equação 2 Grau

Raphael Santana Carvalho
utroz

(usa Ubuntu)

Enviado em 07/01/2011 - 01:14h

Olá galera estou conseguindo executar o aplicativo, porém quando vai exebir o resultado da o seguinte erro:

Erro:
--------------
O valor do delta é negativo: Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.Double
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4011)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2725)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2677)
at java.util.Formatter.format(Formatter.java:2449)
at java.io.PrintStream.format(PrintStream.java:937)
at java.io.PrintStream.printf(PrintStream.java:838)
at EquacaoSegundoGrau.main(EquacaoSegundoGrau.java:34)
------------------

Segue o Código:

------------------
/* Programa .Java
criado por Raphael Santana Carvalho */

import java.util.Scanner; // classe Scanner

public class EquacaoSegundoGrau
{
// metodo inicial
public static void main(String args[])
{
Scanner input = new Scanner( System.in );

double a;
double b;
double c;
double delta; // resultado
double x1;
double x2;

System.out.print("Digite o valor de \"A\":");
a = input.nextDouble(); // lê o primeiro valor

System.out.print("Digite o valor de \"B\":");
b = input.nextDouble(); // lê o segundo valor

System.out.print("Digite o valor de \"C\":");
c = input.nextDouble(); // lê o terceiro valor

delta = (b * b) - 4 * (a * c); // resultado

if (delta < 0)
{
System.out.printf("O valor do delta é negativo: %d\n%s\n", delta , "A equação não possui solução.");
}

else
{
x1 = (-b + Math.sqrt (delta)) / (2*a);
x2 = (-b - Math.sqrt (delta)) / (2*a);

System.out.printf("O valor do delta é: %d\n%s\n", delta , "A equação possui solução.");
System.out.printf("\n O valor do X1 é: %d\n", x1);
System.out.printf("\n O valor do X2 é: %d\n", x2); // fim da condição
}


} // fim do metodo inicial
} // fim da classe EquacaoSegundoGrau
------------------


  


2. Re: Erro Compilação / Equação 2 Grau

Guilherme Santos Souza
guisantogui

(usa Ubuntu)

Enviado em 13/01/2011 - 10:32h

Isso não é problema de compilação o sistema está estourando uma excessão, tenta depurar o programa e ver em qual linha está estourando a excessão.


3. Re: Erro Compilação / Equação 2 Grau

Brian Chalega da Silva
brian_ch

(usa Arch Linux)

Enviado em 13/01/2011 - 14:04h

O erro é que você está usando o %d (formatar para decimal) para o delta, x1 e x2 que são double, por isso ele lança a exceção de conversão ilegal. Para double e float se usa %f (na verdade há outros tipos de formatação, mas acho que esta é a que você quer):

System.out.printf("O valor do delta é negativo: %f\n%s\n", delta , "A equação não possui solução.");

E se você quiser formatar para determinado número de casas decimais, pode usar:
System.out.printf("O valor do delta é negativo: %6.2f\n%s\n", delta , "A equação não possui solução.");

Obs: O que muda é o 6.2 que faz o número ser impresso em 6 colunas e com duas casas decimais.
Procure na internet que você acha bastante coisa sobre isso se precisar.

Obs2: Você precisa arrumar isso em todos os printf.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts