Ir para conteúdo

Arquivado

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

Anderson007

[Resolvido] Cálculo e Resultado no Formato Moeda em Javascript

Recommended Posts

Olá Pessoal,

 

Resolvi postar aqui um código para efetuar cálculos e obter o resultado tudo em formato moeda via javascript.

 

Os dados deste código merecem os créditos dos sites:

É só copiar e colar e daí desenvolver de acordo com a necessidade.

 

Sempre lembrando que em programação uma mesma coisa pode ser feita de inúmeras maneiras.

 

Essa foi a que eu encontrei.

 

Abraços

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Calculadora simples</title>
<script type="text/javascript">
function maskIt(w,e,m,r,a){
// Cancela se o evento for Backspace
if (!e) var e = window.event
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;
// Variáveis da função
var txt  = (!r) ? w.value.replace(/[^\d]+/gi,'') : w.value.replace(/[^\d]+/gi,'').reverse();
var mask = (!r) ? m : m.reverse();
var pre  = (a ) ? a.pre : "";
var pos  = (a ) ? a.pos : "";
var ret  = "";
if(code == 9 || code == 8 || txt.length == mask.replace(/[^#]+/g,'').length) return false;
// Loop na máscara para aplicar os caracteres
for(var x=0,y=0, z=mask.length;x<z && y<txt.length;){
if(mask.charAt(x)!='#'){
ret += mask.charAt(x); x++; } 
else {
ret += txt.charAt(y); y++; x++; } }
// Retorno da função
ret = (!r) ? ret : ret.reverse()	
w.value = pre+ret+pos; }
// Novo método para o objeto 'String'
String.prototype.reverse = function(){
return this.split('').reverse().join(''); };
</script>

<script language="javascript">
function number_format( number, decimals, dec_point, thousands_sep ) {
var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
var d = dec_point == undefined ? "," : dec_point;
var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";
var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}
</script>

<script> 
function calcula(operacion){ 
var operando1 = parseFloat( document.calc.operando1.value.replace(/\./g, "").replace(",", ".") );
var operando2 = parseFloat( document.calc.operando2.value.replace(/\./g, "").replace(",", ".") );
var result = eval(operando1 + operacion + operando2);
document.calc.resultado.value = number_format(result,2, ',', '.');
} 
</script> 
</head>

<body>

<h1>Calculadora simples</h1>
<br>
<?php
if (isset($_GET['envio'])) {
echo $_GET['resultado']; }
?>

<form name="calc">
<input type="Text" name="operando1" value="" size="12" onKeyUp="maskIt(this,event,'###.###.###,##',true)" dir="rtl"> 
<br/> 
<input type="Text" name="operando2" value="" size="12" onKeyUp="maskIt(this,event,'###.###.###,##',true)" dir="rtl"> 
<br/> 
<input type="Button" name="" value=" + " onclick="calcula('+')"> 
<input type="Button" name="" value=" - " onclick="calcula('-')"> 
<input type="Button" name="" value=" X " onclick="calcula('*')"> 
<input type="Button" name="" value=" / " onclick="calcula('/')"> 
<br/> 
<input type="Text" name="resultado" value="" size="12" dir="rtl"/> 
<br/>
<input name="envio" type="submit" value="Enviar">
</form>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parabéns, uns dos poucos que funciona backspace no mozilla, apesar de antigo.

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.