Ir para conteúdo

POWERED BY:

Arquivado

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

william_droops

[Resolvido] Conta estourando

Recommended Posts

Boa tarde.

Estou fazendo uma conta de valores e quantidades de peças.

 

exe:

<%
   while not rsConsulta.EOF

	 quantidade = quantidade & "rsConsulta("quantidade")"
	 valor = valor & "rsConsulta("valor_total")"
	rsConsulta.movenext
   wend
   
media = valor / quantidade

%>
Porém o resultado estoura por ter muitas casas após a virgula.

 

Como faço para limitar a conta ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função FormatNumber retorna uma expressão formatada como um número.

 

Sintaxe:

FormatNumber(expressão [,NumDigAfterDec[,

IncLeadingDig[,UseParForNegNum[,GroupDig]]]])

 

expressão- Obrigatório. A expressão a ser formatada

NumDigAfterDec -opicional. Indica quantas casas à direita do decimal são mostrados. O padrão é -1 (definições regionais do computador são utilizados)

IncLeadingDig -opicional. Indica ou não zero à esquerda é exibido para valores fracionários:

• -2 = TristateUseDefault - Utilização do computador configurações regionais

• -1 = TristateTrue - Verdadeiro

• 0 = TristateFalse - Falso

UseParForNegNum -opicional. Indica ou não valores negativos nos parênteses:

• -2 = TristateUseDefault - Utilização do computador configurações regionais

• -1 = TristateTrue - Verdadeiro

• 0 = TristateFalse - Falso

GroupDig -opicional. Indica ou não se os números são agrupados usando o delimitador especificado no grupo do computador configurações regionais:

• -2 = TristateUseDefault - Utilização do computador configurações regionais

• -1 = TristateTrue - Verdadeiro

• 0 = TristateFalse - Falso

 

usa esta função:

 

Function FormataMoeda(valor)
 sp = Mid(FormatNumber(1000, 0, -1, 0, -1),2,1)
 sv = Mid(FormatNumber(0.1, 1, -1, 0, -1),2,1)
 If isNumeric(valor) Then
   v = FormatNumber (valor, 2, -1, 0, -1)
 Else
   v = FormatNumber (0, 2, -1, 0, -1)
 End If
 v = Replace(v, sp, "p")
 v = Replace(v, sv, "v")
 v = Replace(v, "p", ".")
 v = Replace(v, "v", ",")
 FormataMoeda = v
End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, eu chamei a função somente na hora de exibir o resultado, mas mesmo o resultado estourando, ela converte para o valor correto ?

 

EXE:

<%
   while not rsConsulta.EOF

	 quantidade = quantidade & "rsConsulta("quantidade")"
	 valor = valor & "rsConsulta("valor_total")"
	rsConsulta.movenext
   wend
   
media = valor / quantidade
call FormataMoeda(media)

response.write v

E como faço para aumentar mais duas casas ??

 

EX :

 

0,25 para 0,2545

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual erro é realmente apresentado? Da forma que está deveria dar erro de tipos de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu não colocar a formula apresenta o resultado assim:

 

UPDATE ps SET custo='1,75835951570943E-02' WHERE chvps=2579

 

 

e o ideal tem que ser 0,xxxx .

 

Retirei a função e coloquei da maneira simples

 

<%
 media = valor / quantidade

novamedia =formatNumber(media, 4)

 
%>

Acho que foi,

 

Ele pega o valor, mesmo estourado 1,75835951570943E-02' e transforma no correto 0.0176

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.