Ir para conteúdo

Arquivado

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

Pitag346

Calculo em Javascript

Recommended Posts

Olá pessoal, tudo bem ?

 

Estou com um probleminha bem chato que não faço ideia como resolver... Espero que me ajudem! Agradeço desde já.

 

Vamos lá.

Preciso fazer um calculo com a seguinte expressão:  (ValorAtual/100*10)+parseFloat(ValorAtual)-parseFloat(Saque)+parseFloat(Deposito);

Até o momento estou obtendo sucesso com a expressão acima.  Agora vem o problema.

 

Após eu obter o resultado da expressão acima, eu preciso substituir a variável ValorAtual com o  resultado do mesmo, isso 12 vezes. (12 meses).

Não sei se ficou muito bem explicado, porem eu preciso fazer essa função com valores já definidos e as próximas 12 vezes com valores a definir ou 0.

Vou fazer uma nova explicação com os códigos comentados:

 

var ValorAtual = 1000;

var Saque = 0;  // zero seria o padrão, eu poderia adicionar valores diferentes. (para cada mês, se possivel).

var Deposito = 0; // zero seria o padrão, eu poderia adicionar valores diferentes. (para cada mês, se possivel)..

var resultado = (ValorAtual/100*10)+parseFloat(ValorAtual)-parseFloat(Saque)+parseFloat(Deposito);

Preciso recuperar o primeiro resultado, no exemplo acima seria: 1100

Então após recuperar o valor acima, eu precisaria substituir o ValorAtual para 1100.

Isso, 12 vezes... Recuperando o valor e substituindo como se fosse um calculo de juros mensais (12 meses).

 

 

Tentei fazer com while mas não obtive exito. Estou parado com a função simples que detalhei acima. Obrigado.

 

Espero tenham entendido e agradeço desde já!

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pitag346

Não ficou muito bem explicadoo que você precisa.

Porém pelo o que entendi você precisa atualizar o valorAtual com o novo calor calculado após expressão, certo?

Basta você atribuir o resultado para o valorAtual

 

var ValorAtual = 1000;

var Saque = 0;

var Deposito = 0;

var resultado = (ValorAtual/100*10)+parseFloat(ValorAtual)-parseFloat(Saque)+parseFloat(Deposito);

ValorAtual = resultado ; //valorAtual atualizado com o valor calculado, DE 1000 PARA 1100;

 

Agora essa parte eu não entendi:

Isso, 12 vezes... Recuperando o valor e substituindo como se fosse um calculo de juros mensais (12 meses).

 

O que você quer? Pegar o valor 1100 e dividir em 12 e colocar um valor de juros em cima?

Explique melhor essa parte pois ficou incompreensível.

Se você quer colocar um valor total com juros.

Digamos que você quer pegar esse valor e calcular um rendimento em 12 meses com um valor de juros, primeiro você precisa dizer se é JUROS SIMPLES (juros fixo mensal) ou JUROS COMPOSTO (juros sobre juros mensal).

 

Caso você queira saber o valor a Juros Simples é simples.

Basta você pegar o valorAtual e multiplicar por um valor percentual, digamos que o valor seja 6%, então você multiplica por 0,06 ou 6/100.

Com isso você vai ter o valor do juros mensal, então basta multiplicar este valor por 12 e você tem o juros anual.

var calcJuros = (valorAtual * 0,06) * 12;

 

Caso seja a juros composto você precisa criar um FOR

 

var calcJuros = valorAtual;
for(var=1;<;++){ calcJuros = (calcJuros * 0,06);};

Isso gera juros sobre juros.

 

Agora o que eu não entendi é como você esta chamando essa função e como você pretente alterar os valores SaqueDeposito, você ira inputar os dados com formulário HTML?

 

Existem muitos meios de se fazer as coisas, caso não seja nada disso, explique melhor como você ira alterar os dados, se é uma aplicação HTML e como você quer exibir os valores? E como é essa "regra":

Isso, 12 vezes... Recuperando o valor e substituindo como se fosse um calculo de juros mensais (12 meses).

 

Se a minha resposta for útil não esqueça de agradecer e votar positivo.

Espero ter ajudado de alguma forma.

 

Att
Felipe Guedes Coutinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Felipe Guedes Coutinho  Muito obrigado pela resposta, eu utilizei o FOR com a expressão que eu criei e acabou dando certo.

 

Vou tentar explicar melhor sobre o meses.

Oque eu estou querendo fazer é um sistema de simulação de rendimento, onde o 10% do ValorAtual é somado com ele mesmo, subtraído o valor que você sacou/retirou e adicionando o valor que depositou/entrou.

Os valores de Saque e Deposito seriam adicionados via HTML/INPUT.

Em uma página html tenho 12 quadros que mostram os 12 meses, dentro desses quadros existem 2 campos, SAQUE E DEPOSITO onde eu posso deixar em branco e utilizar o valor 0 ou preencher. Caso preencher alterar os valores seguintes.


O resultado utilizando dessa forma: 

for(var i = 0; i < 13; i++){
var resultado = (parseFloat(valoratual)/100*10)+parseFloat(valoratual)-parseFloat(saquev)+parseFloat(depositov);
valoratual = resultado;
console.log(valoratual); //retorna os 12 valores corretamente.

};
 

Como podemos ver acima, os valores de cada mês, se dependem. Ou seja, eu não sei de que forma eu possa gerar os 12 valores onde eu posso alterar os dados SAQUE E DEPOSITO do mês e eles se atualizarem. um exemplo abaixo:

Utilizando a função acima o resultado será (exemplo);

Valor Atual: 10

Saque: 10

Deposito: 10

Janeiro - Resultado: 11

Fevereiro - Resultado: 12.1

Março - Resultado: 13.3

Abril - Resultado: 14.6

Maio - Resultado: 16.1 (Caso eu alterar os valores de SAQUE e DEPOSITO a partir desse resultado os demais abaixo, atualizam pois o resultado final será outro, e o mês abaixo calcula conforme o resultado final desse mês.).

Junho - Resultado: 17.7

Julho - Resultado: 19.4

Agosto - Resultado: 21.4

Setembro - Resultado: 23.5

Outubro - Resultado: 25.9

Novembro - Resultado: 28.5

Dezembro - Resultado: 31.3

 

 

Cada mês teria seu Valor de SAQUE E DEPOSITO, porem os resultados finais tem que se encontrar. O resultado final do mes de janeiro é o valoratual para o mês de fevereiro e assim vai...

 

é dificil explicar, porem ao entender fica mais facil. 

Eu não faço ideia como fazer.

Obrigado, se tiver ficado muito confuso não precisa quebrar a cabeça pra tentar entender não kkkk Obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pitag346

Fala ai fera, vou te ser sincero, foi um pouco complicado entender o que você precisa, mas no final das contas eu consegui entender ou pelo menos eu acho que consegui.

 

Vamos lá, primeiro, o que parece é que você quer fazer um Simulador de Juros em uma conta e dependendo do valor do Saque ou do Deposito os meses seguintes precisam refletir essas ações, estou certo?

Então assim, por você não ter disponibilizado nenhum código, tomei a liberdade de fazer algo do começo ao fim.

Por favor, se você testar e for algo relevante, não deixe de me agradecer, afinal de contas levei um tempo para tentar fazer algo para que você possa aproveitar. o código ficou um pouco extenso e complexo para quem não entende de JavaScript.

 

Segue o código, LEIA AS REGRAS PARA PODER USAR O CÓDIGO DA MELHOR MANEIRA, pois não existem todos os tratamentos, está bem "crú" o código.

<style>
table {
    border-collapse: separate;
    border-spacing: 1px 8px;
    margin-top: -8px;
}
td {
    border: 1px solid #97B0E6;
    border-left-width: 0;
    min-width: 120px;
    height: 18px;
}
td:first-child {
    border-left-width: 1px;
}
textarea, input, select {
    box-shadow: 0 0 0 0;
    border: 0 none;
    outline: 0;
}
.text-white, .text-white-houve:hover, button {
    color: #97B0E6 !important;
}
.shadow-1, button, .container {
    box-shadow: 0 1px 3px rgba(0, 0, 255, 0.12), 0 1px 2px rgba(0, 0, 255, 0.24);
}
.shadow-2, button:hover, .context_menu_pai, .box_login, .datepicker.dropdown-menu, .dialogbox, .overflow-menu ul {
    box-shadow: 0 2px 5px 0 rgba(0, 0, 255, 0.16), 0 2px 10px 0 rgba(0, 0, 255, 0.12);
}
.transition-1, button {
    transition: all .3s ease-out;
    transition-property: all;
    transition-duration: .3s;
    transition-timing-function: ease-out;
}
button {
    background-color: #FFFFFF;
    text-align: center
    border: 0;
    padding: 0px;
    width: 70px;
    height: 20px;
    display: inline-block;
    margin: 5px;
    cursor: pointer;
    border-radius: 4px;
}
</style>
<script>
function clearCampos() {
    for (var i = 1; i <= 12; i++) {
        document.getElementById('m'+i).value = " ";
        document.getElementById('s'+i).value = " ";
        document.getElementById('d'+i).value = " ";
    }
}

function AtivarValor() {
    clearCampos();
    var valorMes = document.getElementById('st').value;
    var sizeMes  = document.getElementById('st').value.length;
	if(sizeMes == 0) {
        valorMes = 0.00;
    } else {
        while (valorMes.indexOf(".") >= 0) { valorMes = valorMes.replace(".", ""); }
        valorMes = valorMes.replace(',', '.');
	};
    
	var juros = parseFloat(valorMes) * (parseFloat(document.getElementById('taxaJuros').value) / 100 );
	
	for (var i = document.getElementById('MesAtivar').value; i < 13; i++) {
        //Calcula juros de 10% em cima do valor digitado.
        var calc_total = parseFloat(valorMes) * (1 + parseFloat(document.getElementById('taxaJuros').value) / 100 );		
        //Novo Valor do Mês.
        valorMes = calc_total;
        //Realiza tratamento na variável para colocar
        //pontos das casas de milhares
        //virgual das casas de decimais.
        var numero = calc_total.toFixed(2).split('.');
        numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.');
        //Atribui resultado para os campos.
        document.getElementById('m'+i).value = numero;
	};
};

function SaqueMes() {
    if (document.getElementById('MesAcionar').value >= 1 && document.getElementById('MesAcionar').value <= 6) {
        document.getElementById('SaqueText1').style.visibility='visible';
        document.getElementById('SaqueText1').style.display='';
        document.getElementById('SaqueSaldo1').style.visibility='visible';
        document.getElementById('SaqueSaldo1').style.display='';
    };
    if (document.getElementById('MesAcionar').value >= 7 && document.getElementById('MesAcionar').value <= 12) {
        document.getElementById('SaqueText2').style.visibility='visible';
        document.getElementById('SaqueText2').style.display='';
        document.getElementById('SaqueSaldo2').style.visibility='visible';
        document.getElementById('SaqueSaldo2').style.display='';
    };

    document.getElementById('s'+document.getElementById('MesAcionar').value).value = document.getElementById('s0').value;
    var valorSaque = document.getElementById('s0').value;
    var sizeSaque  = document.getElementById('s0').value.length;
    if(sizeSaque == 0) {
        valorSaque = 0.00;
    } else {
        while (valorSaque.indexOf(".") >= 0) { valorSaque = valorSaque.replace(".", ""); }
        valorSaque = valorSaque.replace(',', '.');
    };
    var valorMesSacado = document.getElementById('m'+document.getElementById('MesAcionar').value).value;
    var sizeMesSacado  = document.getElementById('s0').value.length;
    if(sizeMesSacado == 0) {
        valorMesSacado = 0.00;
    } else {
        while (valorMesSacado.indexOf(".") >= 0) { valorMesSacado = valorMesSacado.replace(".", ""); }
        valorMesSacado = valorMesSacado.replace(',', '.');
    };
    
    var saqueMes = document.getElementById('MesAcionar').value;
    var saldo = parseFloat(valorMesSacado) - parseFloat(valorSaque);
    var valorMes = saldo;
    var numero = saldo.toFixed(2).split('.');
    numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.');
    document.getElementById('m'+document.getElementById('MesAcionar').value).value = numero;
    
    for (var i = parseFloat(document.getElementById('MesAcionar').value) + 1; i <= 12; i++) {
        //Calcula juros de 10% em cima do valor digitado.
        var calc_total = parseFloat(valorMes) * (1 + parseFloat(document.getElementById('taxaJuros').value) / 100 );		
        //Novo Valor do Mês.
        valorMes = calc_total;
        //Realiza tratamento na variável para colocar
        //pontos das casas de milhares
        //virgual das casas de decimais.
        var numero = calc_total.toFixed(2).split('.');
        numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.');
        //Atribui resultado para os campos.
        document.getElementById('m'+i).value = numero;
    };
};

function DepositoMes() {
    if (document.getElementById('MesAcionar').value >= 1 && document.getElementById('MesAcionar').value <= 6) {
        document.getElementById('DepositoText1').style.visibility='visible';
        document.getElementById('DepositoText1').style.display='';
        document.getElementById('DepositoSaldo1').style.visibility='visible';
        document.getElementById('DepositoSaldo1').style.display='';
	};
    if (document.getElementById('MesAcionar').value >= 7 && document.getElementById('MesAcionar').value <= 12) {
        document.getElementById('DepositoText2').style.visibility='visible';
        document.getElementById('DepositoText2').style.display='';
        document.getElementById('DepositoSaldo2').style.visibility='visible';
        document.getElementById('DepositoSaldo2').style.display='';
	};
	document.getElementById('d'+document.getElementById('MesAcionar').value).value = document.getElementById('d0').value;
    var valorDeposito = document.getElementById('d0').value;
    var sizeDeposito  = document.getElementById('d0').value.length;
	if(sizeDeposito == 0) {
        valorDeposito = 0.00;
    } else {
        while (valorDeposito.indexOf(".") >= 0) { valorDeposito = valorDeposito.replace(".", ""); }
        valorDeposito = valorDeposito.replace(',', '.');
	};
    var valorMesDepositado = document.getElementById('m'+document.getElementById('MesAcionar').value).value;
    var sizeMesDepositado  = document.getElementById('d0').value.length;
	if(sizeMesDepositado == 0) {
        valorMesDepositado = 0.00;
    } else {
        while (valorMesDepositado.indexOf(".") >= 0) { valorMesDepositado = valorMesDepositado.replace(".", ""); }
        valorMesDepositado = valorMesDepositado.replace(',', '.');
	};
	
	var depositoMes = document.getElementById('MesAcionar').value;
	var saldo = parseFloat(valorMesDepositado) + parseFloat(valorDeposito);
	var valorMes = saldo;
	var numero = saldo.toFixed(2).split('.');
    numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.');
	document.getElementById('m'+document.getElementById('MesAcionar').value).value = numero;

	for (var i = parseFloat(document.getElementById('MesAcionar').value) + 1; i <= 12; i++) {
        //Calcula juros de 10% em cima do valor digitado.
        var calc_total = parseFloat(valorMes) * (1 + parseFloat(document.getElementById('taxaJuros').value) / 100 );		
        //Novo Valor do Mês.
        valorMes = calc_total;
        //Realiza tratamento na variável para colocar
        //pontos das casas de milhares
        //virgual das casas de decimais.
        var numero = calc_total.toFixed(2).split('.');
        numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.');
        //Atribui resultado para os campos.
        document.getElementById('m'+i).value = numero;
	};
};

function DescMesAtivar() {
    if (document.getElementById('MesAtivar').value == 1) {
        document.getElementById("DescMesAtivar").innerHTML = 'Janeiro';
    };
    if (document.getElementById('MesAtivar').value == 2) {
        document.getElementById("DescMesAtivar").innerHTML = 'Fevereiro';
    };
    if (document.getElementById('MesAtivar').value == 3) {
        document.getElementById("DescMesAtivar").innerHTML = 'Março';
    };
    if (document.getElementById('MesAtivar').value == 4) {
        document.getElementById("DescMesAtivar").innerHTML = 'Abril';
    };
    if (document.getElementById('MesAtivar').value == 5) {
        document.getElementById("DescMesAtivar").innerHTML = 'Maio';
    };
    if (document.getElementById('MesAtivar').value == 6) {
        document.getElementById("DescMesAtivar").innerHTML = 'Junho';
    };
    if (document.getElementById('MesAtivar').value == 7) {
        document.getElementById("DescMesAtivar").innerHTML = 'Julho';
    };
    if (document.getElementById('MesAtivar').value == 8) {
        document.getElementById("DescMesAtivar").innerHTML = 'Agosto';
    };
    if (document.getElementById('MesAtivar').value == 9) {
        document.getElementById("DescMesAtivar").innerHTML = 'Setembro';
    };
    if (document.getElementById('MesAtivar').value == 10) {
        document.getElementById("DescMesAtivar").innerHTML = 'Outubro';
    };
    if (document.getElementById('MesAtivar').value == 11) {
        document.getElementById("DescMesAtivar").innerHTML = 'Novembro';
    };
    if (document.getElementById('MesAtivar').value == 12) {
        document.getElementById("DescMesAtivar").innerHTML = 'Dezembro';
    };
};

function DescMesAcionar() {
    if (document.getElementById('MesAcionar').value == 1) {
        document.getElementById("DescMesAcionar").innerHTML = 'Janeiro';
    };
    if (document.getElementById('MesAcionar').value == 2) {
        document.getElementById("DescMesAcionar").innerHTML = 'Fevereiro';
    };
    if (document.getElementById('MesAcionar').value == 3) {
        document.getElementById("DescMesAcionar").innerHTML = 'Março';
    };
    if (document.getElementById('MesAcionar').value == 4) {
        document.getElementById("DescMesAcionar").innerHTML = 'Abril';
    };
    if (document.getElementById('MesAcionar').value == 5) {
        document.getElementById("DescMesAcionar").innerHTML = 'Maio';
    };
    if (document.getElementById('MesAcionar').value == 6) {
        document.getElementById("DescMesAcionar").innerHTML = 'Junho';
    };
    if (document.getElementById('MesAcionar').value == 7) {
        document.getElementById("DescMesAcionar").innerHTML = 'Julho';
    };
    if (document.getElementById('MesAcionar').value == 8) {
        document.getElementById("DescMesAcionar").innerHTML = 'Agosto';
    };
    if (document.getElementById('MesAcionar').value == 9) {
        document.getElementById("DescMesAcionar").innerHTML = 'Setembro';
    };
    if (document.getElementById('MesAcionar').value == 10) {
        document.getElementById("DescMesAcionar").innerHTML = 'Outubro';
    };
    if (document.getElementById('MesAcionar').value == 11) {
        document.getElementById("DescMesAcionar").innerHTML = 'Novembro';
    };
    if (document.getElementById('MesAcionar').value == 12) {
        document.getElementById("DescMesAcionar").innerHTML = 'Dezembro';
    };
};
</script>
<table border="0" bordercolor="#97B0E6">
<tr>
    <td colspan="3">
	Saldo R$ <input type="text" id="st" size="100" tabindex="1" value="10,00" placeholder="Seguir sempre o padrão da moeda Brasileira R$ 1.000,00" autofocus>
	</td>
	<td colspan="1">
	Mês: 
	<select id="MesAtivar" tabindex="2" onchange="DescMesAtivar()">
	        <option selected>1</option>
	        <option>2</option>
	        <option>3</option>
	        <option>4</option>
	        <option>5</option>
	        <option>6</option>
	        <option>7</option>
	        <option>8</option>
	        <option>9</option>
	        <option>10</option>
	        <option>11</option>
	        <option>12</option>
    </select><label id="DescMesAtivar">Janeiro</label>
	</td>
	<td colspan="1">Taxa Juros: <input type="text" id="taxaJuros" tabindex="3" placeholder="Taxa sempre com ponto ou 2 ou 2.5 sem %." value="10" ></td>
	<td><button type="submit" onclick="AtivarValor()" tabindex="4" >Ativar</button></td>
</tr>
</tr>
    <td colspan="2">Mês: 
	<select id="MesAcionar" tabindex="5" onchange="DescMesAcionar()">
	        <option selected>1</option>
	        <option>2</option>
	        <option>3</option>
	        <option>4</option>
	        <option>5</option>
	        <option>6</option>
	        <option>7</option>
	        <option>8</option>
	        <option>9</option>
	        <option>10</option>
	        <option>11</option>
	        <option>12</option>
    </select><label id="DescMesAcionar">Janeiro</label>
    </td>
    <td colspan="2">Saque R$ <input type="text" id="s0" placeholder="Seguir sempre o padrão da moeda Brasileira R$ 1.000,00" value="1,00" tabindex="6" >
	<button type="submit" onclick="SaqueMes()" tabindex="7" >Sacar</button></td>
    <td colspan="2">Deposito R$ <input type="text" id="d0" placeholder="Seguir sempre o padrão da moeda Brasileira R$ 1.000,00" value="1,00" tabindex="8" >
	<button type="submit" onclick="DepositoMes()" tabindex="9" >Depositar</button></td>
</tr>
<tr><th colspan="6" align="left">Resultados</th></tr>
<tr>
    <td width="20%">Janeiro</td>
    <td width="20%">Fevereiro</td>
    <td width="20%">Março</td>
    <td width="20%">Abril</td>
    <td width="20%">Maio</td>
    <td width="20%">Junho</td>
</tr>
<tr>
    <td>R$ <input type="text" id="m1" readonly></td>
    <td>R$ <input type="text" id="m2" readonly></td>
    <td>R$ <input type="text" id="m3" readonly></td>
    <td>R$ <input type="text" id="m4" readonly></td>
    <td>R$ <input type="text" id="m5" readonly></td>
    <td>R$ <input type="text" id="m6" readonly></td>
</tr>
<tr id="SaqueText1" style="visibility:hidden;display:none">
    <td>Saque Janeiro</td>
    <td>Saque Fevereiro</td>
    <td>Saque Março</td>
    <td>Saque Abril</td>
    <td>Saque Maio</td>
    <td>Saque Junho</td>
</tr>
<tr id="SaqueSaldo1" style="visibility:hidden;display:none">
    <td>R$ <input type="text" id="s1" readonly ></td>
    <td>R$ <input type="text" id="s2" readonly ></td>
    <td>R$ <input type="text" id="s3" readonly ></td>
    <td>R$ <input type="text" id="s4" readonly ></td>
    <td>R$ <input type="text" id="s5" readonly ></td>
    <td>R$ <input type="text" id="s6" readonly ></td>
</tr>
<tr id="DepositoText1" style="visibility:hidden;display:none">
    <td>Deposito Janeiro</td>
    <td>Deposito Fevereiro</td>
    <td>Deposito Março</td>
    <td>Deposito Abril</td>
    <td>Deposito Maio</td>
    <td>Deposito Junho</td>
</tr>
<tr id="DepositoSaldo1" style="visibility:hidden;display:none">
    <td>R$ <input type="text" id="d1" readonly ></td>
    <td>R$ <input type="text" id="d2" readonly ></td>
    <td>R$ <input type="text" id="d3" readonly ></td>
    <td>R$ <input type="text" id="d4" readonly ></td>
    <td>R$ <input type="text" id="d5" readonly ></td>
    <td>R$ <input type="text" id="d6" readonly ></td>
</tr>
<tr>
    <td>Julho</td>
    <td>Agosto</td>
    <td>Setembro</td>
    <td>Outubro</td>
    <td>Novembro</td>
    <td>Dezembro</td>
</tr>
<tr>
    <td>R$ <input type="text" id="m7" readonly></td>
    <td>R$ <input type="text" id="m8" readonly></td>
    <td>R$ <input type="text" id="m9" readonly></td>
    <td>R$ <input type="text" id="m10" readonly></td>
    <td>R$ <input type="text" id="m11" readonly></td>
    <td>R$ <input type="text" id="m12" readonly></td>
</tr>
<tr id="SaqueText2" style="visibility:hidden;display:none">
    <td>Saque Julho</td>
    <td>Saque Agosto</td>
    <td>Saque Setembro</td>
    <td>Saque Outubro</td>
    <td>Saque Novembro</td>
    <td>Saque Dezembro</td>
</tr>
<tr id="SaqueSaldo2" style="visibility:hidden;display:none">
    <td>R$ <input type="text" id="s7" readonly ></td>
    <td>R$ <input type="text" id="s8" readonly ></td>
    <td>R$ <input type="text" id="s9" readonly ></td>
    <td>R$ <input type="text" id="s10" readonly ></td>
    <td>R$ <input type="text" id="s11" readonly ></td>
    <td>R$ <input type="text" id="s12" readonly ></td>
</tr>
<tr id="DepositoText2" style="visibility:hidden;display:none">
    <td>Deposito Julho</td>
    <td>Deposito Agosto</td>
    <td>Deposito Setembro</td>
    <td>Deposito Outubro</td>
    <td>Deposito Novembro</td>
    <td>Deposito Dezembro</td>
</tr>
<tr id="DepositoSaldo2" style="visibility:hidden;display:none">
    <td>R$ <input type="text" id="d7" readonly ></td>
    <td>R$ <input type="text" id="d8" readonly ></td>
    <td>R$ <input type="text" id="d9" readonly ></td>
    <td>R$ <input type="text" id="d10" readonly ></td>
    <td>R$ <input type="text" id="d11" readonly ></td>
    <td>R$ <input type="text" id="d12" readonly ></td>
</tr>
</table>

Regras.

 

  1. Para o valor de ativação se você for usar casas decimais, nunca colocar PONTO no lugar da VIRGULA exemplo 10.00 (NÃO) 10,00 (SIM). pois fiz um tratamento para que o JavaScript faça o calculo corretamente, você ainda pode usar o ponto caso tenha casas de milhar como por exemplo o valor 1.000.000,00 mas caso use o ponto para as casas de decimais, não esquecer que para as casas de decimais deve por virgula, pois ele não entende VIRGULA como separador de casas decimais, essa regra você deve usar para o VALOR DE ATIVAÇÃO, VALOR DE SAQUE e VALOR DE DEPOSITO.
  2. Para o valor de TAXA DE JUROS, não colocar VIRGULA. apenas PONTO. exemplo de taxa de juros de 2,5% você deve colocar 2.5 apenas.
  3. Recomendo você a copiar o código em um arquivo e abrir. para o seu primeiro teste clique apenas nos botões, ATIVAR, depois SAQUE e depois DEPOSITO, pois já coloquei valores iniciais nos campos para os cálculos como exemplo. Feito isso, brinque com os MESES DE ATIVAÇÃO. altere o mês para se iniciar em um mês diferente de 1 Janeiro. é uma simulação caso a pessoa abra uma conta poupança em um mês qualquer.
  4. Depois altere o MÊS DE AÇÃO DA CONTA que corresponde ao SAQUE e ao DEPOSITO e clique nos botões para efetuar o saque no mês selecionado e o deposito no mês selecionado, você pode alterar os meses para cada botão.
  5. Os valores de SAQUE e DEPOSITO iram aparecer em uma linha no referido mês.

 

Claro que existem coisas a se fazer, mas acho que isso é mais ou menos o que eu entendi sobre a sua necessidade e atende a regra que você pediu: 

"Maio - Resultado: 16.1 (Caso eu alterar os valores de SAQUE e DEPOSITO a partir desse resultado os demais abaixo, atualizam pois o resultado final será outro, e o mês abaixo calcula conforme o resultado final desse mês.)."

 

Eu espero ter ajudado, foi um desafio legal de se fazer e brincar, até eu vou guardar esse código, pois achei que ficou bacana para se brincar.

 

Se você por acaso conseguir usar o meu código e melhorar de acordo com a sua necessidade, vou te pedir que compartilhe com todos aqui, combinado? Valeu.

 

:lol::thumbsup:

 

* PRECISO DE AJUDA - Vejá meu problema aqui Problemas com SELECT

 

Espero ter ajudado de alguma forma.

 

Att
Felipe Guedes Coutinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Felipe Guedes Coutinho , perdão pela demora amigo. Acabei ficando sem acesso a internet. 

 

Muito obrigado mesmo, solucionou meu problema! e ACHEI SEU CÓDIGO INCRÍVEL!

 

por algum motivo não estou conseguindo reagir ao post! 

 

Mas eu agradeço muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.

      Estou com uma pequena dúvida se é possível ser realizado.

      Preciso passar 2 IDs para o Sistema executar a função, estou utilizando desta forma e gostaria de saber como faço via JS para passar os parâmetro que preciso.

      Observação:
      Dentro da TABELA utilizei 2 Forms, para passar os IDS que preciso, funcionou conforme código abaixo.
      <div class="card-body"> <table id="tab_clie" class="table table-bordered table-hover"> <thead> <tr> <th style="text-align:center; width:10%;">Pedido Nº</th> <th style="text-align:center; width:10%;">Data Pedido</th> <th style="text-align:center; width:32%;">Fornecedor</th> <th style="text-align:center; width:10%;">Status</th> <th style="text-align:center; width:5%;">Ação</th> </tr> </thead> <tbody> <?php foreach ($results as $r) { $dta_ped = date(('d/m/Y'), strtotime($r->dataPedido)); switch ($r->pd_status) { case '1': $status = '&nbsp;&nbsp;Aberto&nbsp;&nbsp;'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#000000'; //Cor: Preta break; case '2': $status = 'Atendido Total'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#086108'; //Cor: Verde break; case '3': $status = 'Atendido Parcial'; $txt = '#000000'; //Cor: Branco $cor = '#FEA118'; //Cor: Amarelo break; default: $status = 'Cancelado'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#D20101'; //Cor: Vermelho break; } echo '<tr>'; echo '<td width="10%" height="10" style="text-align:center;">'.$r->pd_numero.'</td>'; echo '<td width="10%" height="10" style="text-align:center;">'.$dta_ped.'</td>'; echo '<td width="32%" height="10" style="text-align:left;">'.$r->nome.'</td>'; echo '<td width="10%" height="10" style="text-align:left;"><span class="badge" style="color:'.$txt.'; background-color:'.$cor.'; border-color:'.$cor.'">'.$status.'</span></td>'; echo '<td width="5%" style="text-align:center;">'; ?> <div class="row"> <?php if($this->permission->checkPermission($this->session->userdata('permissao'), 'vPedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/visualizar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-warning" title="Visualizar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-search icon-white"></i></button> </form> <?php } if($this->permission->checkPermission($this->session->userdata('permissao'), 'ePedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/editar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-primary" title="Editar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-edit icon-white"></i></button> </form> <?php } ?> </div> <?php echo '</td>'; echo '</tr>'; } ?> </tbody> </table> </div>
      Grato,

      Cesar.
    • Por belann
      Olá!
       
      Estou usando o editor quill em uma página html, sem fazer a instalação com npm, mas usando as api´s via internet com http, no entanto não consigo fazer a tecla enter funcionar para mudança de linha, tentei essa configuração abaixo, mas não funcionou.
       
      modules: {       syntax: true,       toolbar: '#toolbar-container',       keyboard: {         bindings: {           enter: {             key: 13,             handler: function(range, context) {                       quill.formatLine(range.index, range.length, { 'align': '' });             }           }  
       
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de poder tirar uma dúvida com os amigos.
       
      Como faço uma função para Comparar a Data Digitada pelo o Usuário com a Data Atual ?

      Data Digitada:  01/09/2024
       
      Exemplo:
      25/09/2024 é menor que DATA Atual  ====> mensagem: informe uma data válida.
      25/09/2024 é igual DATA Atual ===> o sistema libera os INPUT's.
       
      Como faço uma comparação com a Data Atual, para não Deixar Gravar Data retroativa a data Atual.
       
      Grato,
       
      Cesar
    • Por Rafael Castelhano
      Olá, quero preencher um dict dinamicamente onde a chave é uma string multidimencional no dict, ex:
      var dict = {} var path = 'a.b.c' dict[path] = 55 // isso faz dict ficar desta forma {'a.b.c': 55} // mais quero que fique assim {a: {b: {c: 55}}} Como consigo alterar desta forma? 
    • Por violin101
      Caros amigos, saudações.
       
      Estou com um problema de cálculo que não estou conseguindo resolver.
       
      Tenho uma rotina em Javascript que faz o seguinte cálculo qtde x vrUnit = total.
       
      qtde   x  vrUnit    =    total
      1,23   x  1,00       =    1,23    << até aqui tudo bem.
       
      o problema seria fazer o arredondamento para cima para impedir de fazer este cálculo:
      0,01 x 0,01 = 0,0001
       
      para digitar o valor estou utilizando esta função:
       
      /*Esta função quando o usuário digitar o valor aparece * 1,23 */ function formataDigitacao(i) { //Adiciona os dados para a másrcara var decimais = 2; var separador_milhar = '.'; var separador_decimal = ','; var decimais_ele = Math.pow(10, decimais); var thousand_separator = '$1'+separador_milhar; var v = i.value.replace(/\D/g,''); v = (v/decimais_ele).toFixed(decimais) + ''; var splits = v.split("."); var p_parte = splits[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, thousand_separator); (typeof splits[1] === "undefined") ? i.value = p_parte : i.value = p_parte+separador_decimal+splits[1]; } /*Esta função faz a multiplicação entre Valor Unitário X Quantidade *faz a multiplicação correta */ function calcProd(){ //Obter valor digitado do produto var prod_qtde = document.getElementById("qtde").value; //Remover ponto e trocar a virgula por ponto while (prod_qtde.indexOf(".") >= 0) { prod_qtde = prod_qtde.replace(".", ""); } prod_qtde = prod_qtde.replace(",","."); //Obter valor digitado do produto var valor_unit = document.getElementById("vlrunit").value; //Remover ponto e trocar a virgula por ponto while (valor_unit.indexOf(".") >= 0) { valor_unit = valor_unit.replace(".", ""); } valor_unit = valor_unit.replace(",","."); //Calcula o Valor do Desconto if (valor_unit > 0 && prod_qtde > 0) { calc_total_produto = (parseFloat(valor_unit) * parseFloat(prod_qtde)); var numero = calc_total_produto.toFixed(2).split('.'); //<<== aqui faço o arredondamento das casas decimais de 1,234 p/ 1,23 numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("vlrtotal").value = numero.join(','); } else { if (valor_unit > 0) { document.getElementById("vlrtotal").value = document.getElementById("vlrunit").value; } else { document.getElementById("vlrtotal").value = "0,00"; } } } Grato,
       
      Cesar
×

Informação importante

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