infelizmente você terá que tratar o número depois de fazer cálculos...
depois vc pode trocar o ponto pela vírgula e usar essa função abaixo(eu uso para campos em formulários, vc terá que adapta-la)...
campooriginal é um objeto, eu costumo usar no evento
decimais são quantas casas depois da vírgula tu vai querer...
onblur="formataValorMonetario(this,'2')"
//javascript
function formataValorMonetario(campooriginal,decimais)
{
var posicaoPontoDecimal;
var campo = '';
var resultado = '';
var pos,sep,dec;
//Retira possiveis separadores de milhar
for (pos=0; pos < campooriginal.value.length; pos ++)
{
if (campooriginal.value.charAt
(pos)!='.')
campo = campo + campooriginal.value.charAt(pos);
}
//Formata valor monetário com decimais
posicaoPontoDecimal = campo.indexOf(',');
if (posicaoPontoDecimal != -1)
{
sep = 0;
for (pos=posicaoPontoDecimal-1;pos >= 0;pos--)
{
sep ++;
if (sep > 3)
{
resultado = '.' + resultado;
sep = 1;
}
resultado =
campo.charAt(pos) + resultado;
}
// Trata parte decimal
if (parseInt(decimais) > 0 )
{
resultado = resultado + ',';
pos=posicaoPontoDecimal+1;
for (dec = 1;dec <= parseInt(decimais); dec++)
{
if (pos < campo.length)
{
resultado = resultado + campo.charAt(pos);
pos++;
}
else
resultado = resultado + '0';
}
} // trata decimais
}
// Trata valor monetário sem decimais
else
{
sep = 0;
for (pos=campo.length-1;pos >= 0;pos--)
{
sep ++;
if (sep > 3)
{
resultado = '.' + resultado;
sep = 1;
}
resultado = campo.charAt(pos) + resultado;
}
// Trata parte decimal
if (parseInt(decimais) > 0 )
{
resultado = resultado + ',';
for (dec = 1;dec <= parseInt(decimais); dec++)
{
resultado = resultado + '0';
}
} // trata decimais
}
campooriginal.value = resultado;
}
.: |Programador PHP(Estudante)