Ir para conteúdo

POWERED BY:

Arquivado

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

Gustavo Vilas

configuração

Recommended Posts

Olá pessoal estou com o seguinte problema neste script e gostaria de fazer algumas modificações e pediria a ajuda do pessoal, ao efetuar o calculo e digitar um exemplo o custo:(800,50), e os valores de lucros A VISTA(50%)A PRAZO 40 dias(80%) e A PRAZO 60 dias(100%), meu valor de Preco de Venda não esta batendo ele pega o numero inteiro não conta as casa decimais, gostaria de saber o que preciso alterar aqui para contar no caso o resultado foi:

 

 

A VISTA(50%) =1200

A PRAZO 40 dias(80%) = 1440

A PRAZO 60 dias(100%) = 1600

 

Ele não calculou os centavos do 800,50.

 

Alguem poderia me ajudar. abaixo o codigo:

 


<script type="text/javascript">
window.onload = function()
{
        id('lucro').onblur = function()
        {
                id('preco_final').value = preco_final( id('preco').value, this.value );
        }
                id('preco').onblur = function()
        {                                  
                id('preco_final').value = preco_final( this.value, id('lucro').value );
        }
		
		
		//lucro2
		        id('lucro2').onblur = function()
        {
                id('preco_final2').value = preco_final2( id('preco').value, this.value );
        }
                id('preco').onblur = function()
        {                                  
                id('preco_final2').value = preco_final2( this.value, id('lucro2').value );
        }
		
		//fim
		
		
		//lucro3
				        id('lucro3').onblur = function()
        {
                id('preco_final3').value = preco_final3( id('preco').value, this.value );
        }
                id('preco').onblur = function()
        {                                  
                id('preco_final3').value = preco_final3( this.value, id('lucro3').value );
        }
		//fim
		
}//fim function onload

function preco_final( preco, lucro ){
return (parseFloat( preco )*parseFloat( lucro )/100)+parseFloat( preco );
}

function preco_final2( preco, lucro2 ){
return (parseFloat( preco )*parseFloat( lucro2 )/100)+parseFloat( preco );
}

function preco_final3( preco, lucro3 ){
return (parseFloat( preco )*parseFloat( lucro3 )/100)+parseFloat( preco );
}
function id( el ){
        return document.getElementById( el )
}

</script>
<style type="text/css">
<!--
.inputcolor {background-color: #FFFFCC; 
font: 18px verdana, arial, helvetica, sans-serif;
color:#EE0000;
border:2px solid #000099;
height:30px;
}
.inputtab {width:79px;
height:25px;
background:url(images/telefone.jpg);
margin:0 0 0 10px;
padding:4px 0 0 0;
font:normal 18px Verdana;
color:4f4f4f;
}
.style2 {font-size: 12px}
.style3 {	color: #FFFFFF;
	font-weight: bold;
}
-->
</style>


<p>Custo 
  <input name="preco" type="text" class="inputcolor" id="preco" maxlength="18" />
</p>
<table width="557" height="160" border="1" cellpadding="2" cellspacing="2" bordercolor="#444444">
  <tr>
    <td width="169" bgcolor="#BBBBBB"> </td>
    <td width="116" bordercolor="1" bgcolor="#BBBBBB"><div align="center"><strong>Lucro (%)</strong></div></td>
    <td width="244" bordercolor="1" bgcolor="#BBBBBB"><div align="center"><strong>Preço de Venda(R$)</strong></div></td>
  </tr>
  <tr>
    <td bgcolor="#00FF00"><strong>À Vista</strong></td>
    <td><div align="center">
      <input name="lucro" type="text" class="inputtab" id="lucro" />
    </div></td>
    <td><div align="center">
      <input name="preco_final" type="text" class="inputcolor" id="preco_final" value="0" readonly="readonly" />
    </div></td>
  </tr>
  <tr>
    <td bgcolor="#FFFF00"><strong>À Prazo ( <span class="style2">40 dias )</span></strong></td>
    <td><div align="center">
      <input name="lucro2" type="text" class="inputtab" id="lucro2" />
    </div></td>
    <td><div align="center">
      <input name="preco_final2" type="text" class="inputcolor" id="preco_final2" value="0" readonly="readonly" />
    </div></td>
  </tr>
  <tr>
    <td bgcolor="#FF0000"><span class="style3">À Prazo (<span class="style2"> 60 dias )</span></span></td>
    <td><div align="center">
      <input name="lucro3" type="text" class="inputtab" id="lucro3" />
    </div></td>
    <td><div align="center">
      <input name="preco_final3" type="text" class="inputcolor" id="preco_final3" value="0" readonly="readonly" />
    </div></td>
  </tr>
</table>
<p> </p>

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você está digitando com , (virgula), lembre-se que a maioria das linguagens de programação, assim como javascript também, usam o formato americano de moeda, com o . (ponto), como separador dos centavos.

 

faça um replace(), trocando as virgulas por ponto

 

ou multiplique por 100, antes de fazer as contas, para preservar os centavos, e então divida antes de mostrar.

 

você duplicou funções sem necessidade, elas possuem a mesma assinatura e implementação, deveria ter utilizado apenas uma preco_final(), trocando os parametros, e não reescrevendo a implementação dela.

 

Estude programação básica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado William Bruno

 

utilizei o replace como sugerido pelo nosso amigo, ainda neste script quando digito custo de 33,33 co porcentagem 50 % = ele imprimi 49.995 , o que posso fazer para que le pegue somente duas casas após o ponto , andei pesquisando e vi algo sobre Math.round, mas não consgui implemntar no retorno do meu script ele continua a exibir 49.995, se algume puder ajudar.Obrigado

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.