Galera, desculpa ressucitar o tópico novamente, mas não encontrei ajuda em nenhum lugar.
Tenho que calcular o valor com base em um percentual de desconto.
É uma coisa cheia de regras, mas não estou conseguindo calcular o percentual usando só inteiros.
Faço isso em um javascript.
A ideia é assim…
Tenho o valor de um produto (vlPmc) e preciso calcular um desconto de 30% desse produto.
O valor do produto é 20.71, mas não quero perder a precisão, então como sugerido em alguns posts acima, converto ele em uma String e depois em um int sem o ponto flutuante, transformando o valor em 2071.
Em seguida tento calcular 30% desse valor, fazendo uma regra de 3, mas volto a ter o valor com vírgula.
Segue meu código:
[code]
var vlNegociadoTemp = document.getElementById(‘txtDlgGerenciaPraticado’).value;
if (vlNegociadoTemp != ‘’) {
vlNegociadoTemp = (vlNegociadoTemp.replace(",",""));
}
var vlPmcTemp = "" + vlPmc;
if (vlPmcTemp != '') {
vlPmcTemp = (vlPmcTemp.replace(".",""));
}
var vlMinimoTemp = (((vlPmcTemp * percDescGerMax)/100)-vlPmcTemp)*-1;
// if (vlMinimoTemp != ‘’) {
// vlMinimoTemp = (vlMinimoTemp.replace(".",""));
// }
var vlNegociadoInt = parseInt(vlNegociadoTemp);
var vlMinimoInt = parseInt(vlMinimoTemp);
var vlPmcInt = parseInt(vlPmcTemp);
if (vlNegociadoInt < vlMinimoInt){
vlNegociadoInt = vlPmcInt;
document.getElementById('txtDlgGerenciaPraticado').value = vlPmcInt;
}else if (vlNegociadoInt > vlPmcInt){
vlNegociadoInt = vlPmcInt;
document.getElementById('txtDlgGerenciaPraticado').value = vlPmcInt;
}
//var pcDescSobreVlTot = ((vlNegociado * 100)/vlPmc - 100) * (-1);
// pcDescSobreVlTot = (eval(pcDescSobreVlTot)).toFixed();
var vlFPComDescSobreVlTot = (vlNegociadoInt * 10)/ 100;
// vlFPComDescSobreVlTot = (eval(vlFPComDescSobreVlTot)).toFixed(2);
vlFPComDescSobreVlTot = vlFPComDescSobreVlTot/100;
document.getElementById(‘txtDlgGerenciaPraticadoFP’).value = vlFPComDescSobreVlTot;[/code]
Coloquei o método todo, mas meu erro está na linha 11, dai pra frente preciso corrigir algumas regras ainda.
Se alguém puder ajudar.
Valeu!!