Javascript - Arredondar Valor para cima
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,
CesarDiscussão (2)
Carregando comentários...