Segue um exemplo que eu uso,use como double a propriedade
function formataValor(campo, evt) {
//1.000.000,00
var xPos = PosicaoCursor(campo);
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;
vr = campo.value = filtraNumeros(filtraCampo(campo));
if (vr.length > 0) {
vr = parseFloat(vr.toString()).toString();
tam = vr.length;
if (tam == 1)
campo.value = "0,0" + vr;
if (tam == 2)
campo.value = "0," + vr;
if ((tam > 2) && (tam <= 5)) {
campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
}
if ((tam >= 6) && (tam <= 8)) {
campo.value = vr.substr(0, tam - 5) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if ((tam >= 9) && (tam <= 11)) {
campo.value = vr.substr(0, tam - 8) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if ((tam >= 12) && (tam <= 14)) {
campo.value = vr.substr(0, tam - 11) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if ((tam >= 15) && (tam <= 18)) {
campo.value = vr.substr(0, tam - 14) + '.' + vr.substr(tam - 14, 3) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
}
MovimentaCursor(campo, xPos);
}
function MovimentaCursor(textarea, pos) {
if (pos <= 0)
return; //se a posição for 0 não reposiciona
if (typeof (document.selection) != 'undefined') {
//IE
var oRange = textarea.createTextRange();
var LENGTH = 1;
var STARTINDEX = pos;
oRange.moveStart("character", -textarea.value.length);
oRange.moveEnd("character", -textarea.value.length);
oRange.moveStart("character", pos);
//oRange.moveEnd("character", pos);
oRange.select();
textarea.focus();
}
if (typeof (textarea.selectionStart) != 'undefined') {
//FireFox
textarea.selectionStart = pos;
textarea.selectionEnd = pos;
}
}
function formataValor(campo, evt) {
//1.000.000,00
var xPos = PosicaoCursor(campo);
evt = getEvent(evt);
var tecla = getKeyCode(evt);
if (!teclaValida(tecla))
return;
vr = campo.value = filtraNumeros(filtraCampo(campo));
if (vr.length > 0) {
vr = parseFloat(vr.toString()).toString();
tam = vr.length;
if (tam == 1)
campo.value = "0,0" + vr;
if (tam == 2)
campo.value = "0," + vr;
if ((tam > 2) && (tam <= 5)) {
campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
}
if ((tam >= 6) && (tam <= 8)) {
campo.value = vr.substr(0, tam - 5) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if ((tam >= 9) && (tam <= 11)) {
campo.value = vr.substr(0, tam - 8) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if ((tam >= 12) && (tam <= 14)) {
campo.value = vr.substr(0, tam - 11) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if ((tam >= 15) && (tam <= 18)) {
campo.value = vr.substr(0, tam - 14) + '.' + vr.substr(tam - 14, 3) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
}
MovimentaCursor(campo, xPos);
}
function MovimentaCursor(textarea, pos) {
if (pos <= 0)
return; //se a posição for 0 não reposiciona
if (typeof (document.selection) != 'undefined') {
//IE
var oRange = textarea.createTextRange();
var LENGTH = 1;
var STARTINDEX = pos;
oRange.moveStart("character", -textarea.value.length);
oRange.moveEnd("character", -textarea.value.length);
oRange.moveStart("character", pos);
//oRange.moveEnd("character", pos);
oRange.select();
textarea.focus();
}
if (typeof (textarea.selectionStart) != 'undefined') {
//FireFox
textarea.selectionStart = pos;
textarea.selectionEnd = pos;
}
}









