Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gamefe

[Resolvido] Não arredondar um valor digitado no formulário

Recommended Posts

Pessoal, preciso da ajuda de vocês mais uma vez.

 

Possuo o formulário abaixo:

 

<form method="POST" action="poli_terceira.asp" name="form">
<p align="center"><b><font color="#CC0000" size="2" face="Tahoma"><br>
Este será o novo pedido para o cliente <%=ObjRs("nome")%>, com o código número <%=ObjRs("clienteid")%>.
<input name="clienteid" type="hidden" value='<%=ObjRs("clienteid")%>' />
</p>




<table style="width: 72%">
<tr>
	<td style="width: 74px"><b><font color="#CC0000" size="2" face="Tahoma">CÓDIGO</td>
	<td style="width: 248px"><b><font color="#CC0000" size="2" face="Tahoma">PRODUTO</td>
	<td style="width: 180px"><b><font color="#CC0000" size="2" face="Tahoma">QUANTIDADE</td>
	<td style="width: 107px"><b><font color="#CC0000" size="2" face="Tahoma">PREÇO</td>
</tr>




<%
dim p
p=0
While Not ObjRs.EOF
p=p+1
%>




<tr>
	<td style="width: 74px"><b><font color="#000000" size="2" face="Tahoma"><%Response.write ObjRs("prodcod")%></td>
	<td style="width: 248px"><b><font color="#000000" size="2" face="Tahoma"><%Response.write ObjRs("produto")%></td>
	<td style="width: 180px">
	<input name="quantidade<%Response.write p%>" style="width: 79px" type="text" /><b><font color="#000000" size="2" face="Tahoma"> de <%Response.write ObjRs("quant_disp")%></td>
	<td style="width: 107px">
	<input name="preco<%Response.write p%>" style="width: 103px" type="text" /></td>
</tr>
<%
objRS.MoveNext
wend
%> 

<tr>
	<td style="width: 74px"> </td>
	<td style="width: 248px"> </td>
	<td style="width: 180px"> </td>
	<td style="width: 107px"> </td>
</tr>
</table>
<center><input type="image" name="imageField" src="btn_gravar.gif"></center>
</FORM>

 

Os dados aparecem corretamente, porém quando vejo os valores digitados, seja 1,60 ou 1.60 , eles são sempre arredondados para cima, ou seja, R$2.

 

<%
Response.Expires = 0


Dim p
Dim vco
Dim vde
Dim vqu
Dim vpr
Dim vdt
Dim vhr
Dim var
Dim total
Dim no2,clienteid,cd2

Dim vConexao, vResposta, vPesquisar
Dim vConexao2, vResposta2, vincluir
Dim vDeletar, vRetorno

Dim vConectar
Dim vConectar2

Dim listaprod, todosprod, strQuery
Dim listaprod2, todosprod2, strQuery2

'Variavel que mantem o codigo do cliente		36
clienteid = Request ("clienteid")
data = date()



Set vConexao = Server.CreateObject("ADODB.Connection")
Set vConexao2 = Server.CreateObject("ADODB.Connection")

vConexao.Open "Driver={MySQL ODBC 3.51 Driver}; SERVER=192.168.0.110; DATABASE=teste; UID=policardbh;PASSWORD=123"
vConexao2.Open "Driver={MySQL ODBC 3.51 Driver}; SERVER=192.168.0.110; DATABASE=teste; UID=policardbh;PASSWORD=123"



'Apaga o pedido atual do CLIENTE para colocar o novo pedido		49

vDeletar = "DELETE FROM pedidos_poli_temp WHERE clienteid='"&clienteid&"' "
Set vRetorno = vConexao2.Execute(vDeletar)

'Busca todos os itens da tabela produtos 
listaprod = "SELECT prodcod, produto, quant_disp FROM produtos_poli ORDER BY prodcod"
set todosprod = vConexao.execute(listaprod)

'Percorre o banco de produtos contando quantos produtos existem
p = 0
total = 0 

While Not todosprod.EOF

p = p + 1
var= "quantidade"&p
vco= todosprod("prodcod")
vde= todosprod("produto")
vpt= "preco"&p

  if Request.Form(var) <> "" Then
     vqu = CInt(Request.Form(var))
     vpr = CInt(Request.Form(vpt))
  	  'Inclui na tabela temporaria se a quantidade solicitada > 0
  if vqu > 0 then
     total = vpr * vqu
     'Lanca no arquivo temporario
     vincluir = "INSERT INTO pedidos_poli_temp (data, clienteid,prodcod,produto,preco,quantidade) VALUES ('"&data&"','"&clienteid&"','"&vco&"','"&vde&"','"&vpr&"','"&vqu&"')"
     Set vresposta2 = vconexao2.Execute(vincluir)
     vqu = 0 
  end if
 end if 

 'Busca o proximo item do cadastro
 todosprod.MoveNext
Wend

'Consulta o arquivo de pedidos temporario do cliente
vPesquisar = "SELECT idcompra, clienteid, produto, quantidade, preco, data, prodcod FROM pedidos_poli_temp WHERE clienteid='"&clienteid&"' "
Set vResposta = vConexao2.Execute(vPesquisar)

%>




<form method="GET" action="pedidos_cadastro_poli_quarta.asp">
 <big><p><b><font color="#CC0000" size="2" face="Tahoma">Produtos separados para o cliente número <% Response.Write vResposta("clienteid") %>.</big></p>
<input name="clienteid" style="width: 406px" type="hidden" value='<% Response.Write vResposta("clienteid") %>' />
 <div align="center"><center><table border="1" cellpadding="0" cellspacing="0" width="743"
 height="20">
   <tr>
     <td height="17" style="width: 193px"><b><font color="#CC0000" size="2" face="Tahoma">Produto</td>
     <td width="88" height="17"><b><font color="#CC0000" size="2" face="Tahoma">Quantidade</td>
     <td height="17" style="width: 120px"><b><font color="#CC0000" size="2" face="Tahoma">Preço</td>
     <td width="91" height="17"><b><font color="#CC0000" size="2" face="Tahoma">Total</td>
   </tr>
<% While Not vResposta.EOF %>
   <tr>
     <td height="17" style="width: 193px"><b><font color="#000000" size="2" face="Tahoma"><% Response.Write vResposta("produto") %>
</td>
     <td width="88" height="17"><b><font color="#000000" size="2" face="Tahoma"><% Response.Write vResposta("quantidade") %>
</td>
     <td height="17" style="width: 120px"><b><font color="#000000" size="2" face="Tahoma">R$<% Response.Write vResposta("preco") %></td>
     <td width="91" height="17"><b><font color="#000000" size="2" face="Tahoma">R$<% Response.Write vResposta("preco") * vResposta("quantidade") %></td>
   </tr>
<% vResposta.MoveNext
  Wend
  vResposta.close
  vConexao.close
  Set vResposta = Nothing
  Set vConexao = Nothing %>
 </table>
 </center></div>
 <div align="center"><center><p><big>Total: R$ <%=formatnumber(total,2) %></big>  </p>
 </center></div><center><input type="image" name="imageField" src="btn_gravar.gif"></center>  </center></div>
</form>

 

Os dados já são cadastrados na tabela temporária arredondados.

Procurei de todas as formas encontrar o problema mas não achei.

 

Alguém poderia me ajudar?

 

Valeu pessoal!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola amigo,

voce nao disse onde está a linha de erro e nem exatamente onde está arredondando.

Sendo assim, estou presumindo, mas procure sempre ser o mais claro possivel.

 

troque:

vqu = CInt(Request.Form(var))

vpr = CInt(Request.Form(vpt))

 

Por:

 

vqu = CDbl(Request.Form(var))

vpr = CDbl(Request.Form(vpt))

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola amigo,

voce nao disse onde está a linha de erro e nem exatamente onde está arredondando.

Sendo assim, estou presumindo, mas procure sempre ser o mais claro possivel.

 

troque:

vqu = CInt(Request.Form(var))

vpr = CInt(Request.Form(vpt))

 

Por:

 

vqu = CDbl(Request.Form(var))

vpr = CDbl(Request.Form(vpt))

 

Valeu! Foi só mudar para CDbl que funcionou corretamente.

 

O FormatNumber(numero,quantidade_casas_decimais) não funcionou porque estava arredondando mesmo o valor!

 

Valeu mais uma vez pessoal!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.