Ir para conteúdo

Arquivado

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

alexandre_rangel

Calculo de Multiplicação em JavaScript

Recommended Posts

Preciso fazer um calculo de porcentagem sobre um valor, porém dependendo do numero a ser calculado (se houver dizima periodica no resultado por exemplo) o resultado é arredondado e nao apresenta casas decimais, exemplo:

(estou calculando por 1.05 porque equivale a um acréscimo de 105%)

11.114,37 * 1.05 = 11.6697 (Por que sem casas decimais?)

11,11 * 1.05 = 11.55 (O correto seria 11,66)

Ou seja... O calculo está errado e as vezes nem aparece casas decimais.. Preciso dos resultados corretos com apenas 2 casas decimais. Onde estou errando? Por favor me ajudem!

 

<html>
<head>

</head>
<body>
        <form action="" method="">


								
<label for="usuario">  Valor: </label>


<input class="form-control"   name="PO4R_ORCADO" id="PO4R_ORCADO" type="text"   onblur="percentual();" >

                            
<input class="form-control"name="PO4R_MAIS1" id="PO4R_MAIS1" type="text"  >                                
        </form>
</body>
</html>



<script type="text/javascript">

function percentual() {	

    var p105 = "1.05";
    var p110 = "1.10";
    var p115 = "1.15";    
    var vl_fr1 = document.getElementById("PO4R_ORCADO").value;	//1.114,37
    
 var a1 = parseFloat(vl_fr1)*parseFloat(p105);
 //Multiplica 1.114,37 * 1.05
 
 var a2 = parseFloat(vl_fr1)*parseFloat(p110); 
 var a3 = parseFloat(vl_fr1)*parseFloat(p115);    
 
document.getElementById('PO4R_MAIS1').value = a1; 
// resultado = 11.6697 na calcyladora do windows da 11.670,08

}

</script>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@alexandre_rangel

Você precisa formatar os números antes de realizar os cálculos.
Em JavaScript o ponto ( . ) - e não a vírgula - separa a parte inteira da decimal, daí as inconsistências nos resultados que você está obtendo.

Acrescente o seguinte no seu código:

...
var vl_fr1 = document.getElementById("PO4R_ORCADO").value; //linha do seu código
  vl_fr1 = vl_fr1.replace(/\./g, ""); //retira o ponto do valor entrado
  vl_fr1 = vl_fr1.replace(",", "."); //troca a vírgula por ponto ponto no valor entrado 
 
var a1 = parseFloat(vl_fr1)*parseFloat(p105); //linha do seu código
  a1 = a1.toFixed(2); //arredonda o resultado para 2 casas decimais 
  a1 = a1.replace(".", ","); //substitui o ponto por vírgula no resultado
...

Você vai obter o resultado no formatos  correto até 999,99 a partir daí => 1000,00 sem o ponto

separador de milhar. Fica como exercício o código para  obtenção do  ponto separador de milhar. :glasses:

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos,  saudações. 
       
      Primeiramente agradeço ao auxílio e ajuda que os amigos têm me dado. 
       
      Minha dúvida:
      - para emissão de nota fiscal eletrônica precisa de um CERTIFICADO e SENHA.
      Como ou onde consigo esses dois itens, para fazer teste de emissão de nota fiscal  ?
       
      Grato, 
       
      Cesar
    • Por violin101
      Caros amigos,  saudações. 
       
      Primeiramente agradeço ao auxílio e ajuda que os amigos têm me dado. 
       
      Minha dúvida:
      - para emissão de nota fiscal eletrônica precisa de um CERTIFICADO e SENHA.
      Como ou onde consigo esses dois itens, para fazer teste de emissão de nota fiscal  ?
       
      Grato, 
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma pequena dúvida.
       
      Estou escrevendo um Sistema que tem vários Módulos.
       
      O módulo principal tem:
      Estoque | Compras | Expedição | Vendas

      Minha dúvida:
      como faço após Acessar o Módulo Principal e Escolher o Módulo que quero trabalhar,
      eu possa fechar o Módulo aberto por exemplo: Estoque, sem alterar o Módulo principal e outros se estiver aberto ?


      Grato,
       
      Cesar
    • Por douglas79
      Bom dia,

      Há alguns dias que venho instalar o apache, o php, mysql e o phpmyadmin manualmente e sem obter sucesso. Até consegui rodar o php, porém, quando vou baixar a úitima versão do MYSQL, não tem todos os pacotes nele instalados, inclusive no completo, só encontro o Router.
      Alguém pode me dizer o porquê que isso está ocorrendo?
      Desde já agradeço a ajuda de vocês, que será bem vinda!
      No aguardo!

      Uso a versão 8.3.9 do PHP
      Meu SO é o Windows 10 32 bits
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me perdoa em postar mais uma dúvida minha.

      Através de ajuda e orientação dos membros do Grupo, tenho conseguido resolver muitos problemas que tenho encontrado.
       
      Gostaria de saber dos amigos do grupo, se tem algum vídeo aula, orientando a Instalação das Biblioteca para Emissão de Nota Fiscal Eletrônica.
       
      Tenho feito várias busca e tenho encontrado a maioria das vezes tudo em LARAVEL.

      Sei que para instalar as Biblioteca, precisa do Composer, até aqui tudo bem.

      Minha dúvida: 
      após fazer o download da  sped-nfe  e  sped-da, essas biblioteca devem ser gravada em qual pasta ?  ----   na C:\  ou dentro da pasta do Sistema ?
      quando dou o comando: COMPOSER INSTALL esse comando já instala todas as bibliotecas, ou 1 por 1 ?

      Grato,
       
      Cesar
       
×

Informação importante

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