Converçao: Texto(dado .html) p/ Int(.jsp) RESOLVIDO

6 respostas
Auai
Eu estou fazendo um sistema de orçamento simples.

Um trabalho para faculdade.

Eu andei dando uma olhada e me parece que isso é um problema que muita gente não conseguiu resolver.

Eu dei uma passeada no forum e não achei nada sobre o assunto.

Na verdade eu achei um tópico que não tinha solução alguma.

Eu preciso converter um dado que vem da index(html)

para inteiro.

Será isso possível?

Analisando o código verá que o preço sempre sera 0;

e a quantidade é mostrada na página, eu acho que isso acontece porque

a quantidade não está como um dado inteiro(numérico), e sim como um dado de texto.

Aqui vai o código:

index

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Recebendo</title>
    </head>
    <body>
        <h3 align="center">Orçamento</h3>
<form id="form1" name="form1" method="post" action="resultado.jsp">
<table width="288" height="162" border="0" align="center">
  <tr>
    <td width="115" height="29">Tipo de servi&ccedil;o: </td>
    <td width="163"><select name="material" id="material">
      <option value="1">Plastifica&ccedil;&atilde;o</option>
      <option value="2">BOPP Brilho</option>
      <option value="3">BOPP Fosco</option>
    </select></td>
  </tr>
  <tr>
    <td height="29">Formato:</td>
    <td><select name="formato" id="formato">
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="6">6</option>
      <option value="8">8</option>
      <option value="9">9</option>
    </select></td>
  </tr>
  <tr>
    <td height="30">Quantidade</td>
    <td><input name="quant" type="text" id="quant" size="7" maxlength="7" /></td>
  </tr>
  <tr>
    <td height="31">Frente/verso</td>
    <td><label>
      <select name="fv" id="fv">
        <option value="1">Frente</option>
        <option value="2">Verso</option>
        <option value="3">Frente/verso</option>
      </select>
    </label></td>
  </tr>
  <tr>
    <td height="31">&nbsp;</td>
    <td>
      
        <input type="submit" name="Submit" value="Enviar" />
		
		
        
    
    </td>
  </tr>
</table>
</form>
    </body>
</html>

JSP:

<%
            double preco=0d, precoFinal=0d;
            int quanti;
            String material;
            String fv;
            String formato;
   
    material = request.getParameter("material"); 
    formato = request.getParameter("formato");
   quanti = Integer.parseInt(request.getParameter("quant")) ; 
  
    if(request.getParameter("material").equals("1"))
             {  
                out.print("Plastificação");
                out.print("<br>");
                out.print("Quantidade: "+ quanti);
                if(request.getParameter("formato").equals("2"))
                    {
                    preco = 0.14 * quanti;
                    }
                if(request.getParameter("formato").equals("3"))
                    {
                    preco = 0.12 * quanti;
                    }
                    if(request.getParameter("formato").equals("4"))
                    {
                    preco = 0.09 * quanti;
                    }
                    if(request.getParameter("formato").equals("6"))
                    {
                    preco = 0.075 * quanti;
                    }
                    if(request.getParameter("formato").equals("8"))
                    {
                    preco = 0.07 * quanti;
                    }
                    if(request.getParameter("formato").equals("9"))
                    {
                    preco = 0.06 * quanti;
                    }
                    
             }
            
        else if (request.getParameter("material").equals("2"))
            {
                out.print("BOPP Brilho");
                out.print("<br>");
                out.print("Quantidade: "+ quanti);
                if(request.getParameter("formato").equals("2"))
                    {
                    preco = 0.20 * quanti * 2;
                    }
                if(request.getParameter("formato").equals("3"))
                    {
                    preco = 0.28 * quanti;
                    }
                    if(request.getParameter("formato").equals("4"))
                    {
                    preco = 0.20 * quanti;
                    }
                    if(request.getParameter("formato").equals("6"))
                    {
                    preco = 0.16 * quanti;
                    }
                    if(request.getParameter("formato").equals("8"))
                    {
                    preco = 0.12 * quanti;
                    }
                    if(request.getParameter("formato").equals("9"))
                    {
                    preco = 0.10 * quanti;
                    }
            } 
        
        else if (request.getParameter("material").equals("3"))
             {
                out.print("BOPP Fosco");   
                out.print("<br>");
                out.print("Quantidade: "+ quanti);
                if(request.getParameter("formato").equals("2"))
                    {
                    preco = 0.32 * quanti * 2;
                    }
                if(request.getParameter("formato").equals("3"))
                    {
                    preco = 0.48 * quanti;
                    }
                    if(request.getParameter("formato").equals("4"))
                    {
                    preco = 0.32 * quanti;
                    }
                    if(request.getParameter("formato").equals("6"))
                    {
                    preco = 0.22 * quanti;
                    }
                    if(request.getParameter("formato").equals("8"))
                    {
                    preco = 0.20 * quanti;
                    }
                    if(request.getParameter("formato").equals("9"))
                    {
                    preco = 0.18 * quanti;
                    }
             }
             
         fv = request.getParameter("fv");
         
         if(request.getParameter("fv").equals("1"))
             {
             out.print("<br>");   
             out.print("Frente e verso: Frente.");
             
             }
             
         if(request.getParameter("fv").equals("2"))
                {
                 out.print("<br>"); 
                 out.print("Frente e verso: Verso.");
                 }
                 
         if(request.getParameter("fv").equals("3"))
                {
                 out.print("<br>"); 
                 out.print("Frente e verso: Frente/Verso.");
                 precoFinal = preco * 2;
                 }
                 
                 
         out.print("<br>");
         out.print("Valor: "+ precoFinal);

    %>

Agradeço desde já a ajuda e atenção.
Abraços.

(Caso tenha duplicidade de tópico, desculpe, eu realmente não achei um com solução)

6 Respostas

bruno.leite

Kra, você podia ser mais específico…

Auai

Simplificando…
eu recebo um dado pela minha index.
“QUANTIDADE”

na pagina resultado
eu quero manipular esse dado.
e eu nao estou conseguindo.

eu nao estou conseguindo fazer calculo algum com o numero digitado na index.
eu acho que eu estou trabalhando com ele como se fosse uma string
eu nao estou conseguindo converte-lo para double, sacou?
eu acho que é esse o problema…

:\

T

Qual é o problema com Double.parseDouble (se o número estiver no formato “2.34”) ou DecimalFormat.parse (se o número estiver no formato “2,34”)?

Procure por esses nomes mágicos aqui mesmo no GUJ, ou então na Internet.

bruno.leite

thingol:
Qual é o problema com Double.parseDouble (se o número estiver no formato “2.34”) ou DecimalFormat.parse (se o número estiver no formato “2,34”)?

Procure por esses nomes mágicos aqui mesmo no GUJ, ou então na Internet.

Isso, e se o kra digitar ‘aaa’ no local por exemplo, e vc tentar converter isso pra numero, ele irá lançar NumberFormatExeception, basta tratar essa exceção e informar ao usuário (ou fazer oq seja lá o padrão do seu sistema).

king_of_gods

Velho eu recomendaria vc usar JSF. Criar um Bean e tratar tudo dentro dele, isso vai ser resolvido com facilidade.

O Erro é lançado pq acho que vc não importou a classe Double. Importe-a e tente denovo.

Auai

Vamos esquecer nesse momento que o user pode digitar uma letra…
usando o Double.parseDouble eu consigo fazer essa converção tendo a certeza de que o dado será um número, certo?
É só essa a minha dúvida, porque do jeito que eu fiz não está funcionando.

Criado 19 de agosto de 2008
Ultima resposta 19 de ago. de 2008
Respostas 6
Participantes 4