Bom, esse post vai ser outro daqueles "coisas que ainda vou precisar, novamente"!
Esse script javascript serve para deixar o campo com uma máscara de campo decimal (ex: 99,00) conforme você vai digitando. Isso associado à CSS com text-align right, deixa bonitinho =)
Normalmente eu utilizo o plugin maskedinput para o jQuery, mas ele só trabalha com tamanhos fixos de campos, e por isso esse scritp abaixo:
Segue o script utilizado:
// Parametros: campo, separador_de_milhar, separador_decimal, evento
function maskCurrency(fld, milSep, decSep, e) {
  var sep = 0;
  var key = '';
  var i = j = 0;
  var len = len2 = 0;
  var strCheck = '0123456789';
  var aux = aux2 = '';
  var whichCode = (window.Event) ? e.which : e.keyCode;
  if (whichCode == 13 || whichCode == 8 || whichCode == 0) return true;
  key = String.fromCharCode(whichCode);// Valor para o código da Chave
  if (strCheck.indexOf(key) == -1) return false; // Chave inválida
  len = fld.value.length;
  for(i = 0; i < aux =" '';" len =" aux.length;" len ="=" value =" '';" len ="=" value =" '0'+" len ="=" value =" '0'+"> 2) {
      aux2 = '';
      for (j = 0, i = len - 3; i >= 0; i--) {
          if (j == 3) {
          aux2 += milSep;
          j = 0;
      }
      aux2 += aux.charAt(i);
      j++;
  }
  fld.value = '';
  len2 = aux2.length;
  for (i = len2 - 1; i >= 0; i--)
      fld.value += aux2.charAt(i);
      fld.value += decSep + aux.substr(len - 2, len);
  }
  return false;
}
Quando quiser utilizar isso num campo, altere a tag alt com o valor monetario (ex: alt="monetario"), e utilize o seguinte script (em jquery) abaixo:
$(document).ready(function(){
 $('input[alt="monetario"]')
         .bind('keypress', function(e) { return maskCurrency(this, '', '.', e)})
         .css("text-align", "right");
});
E apenas para constar, esse scriptzinho que quebra um galho também (self-explanatory):
function sonumeros(e) {
    var whichCode = (window.Event) ? e.which : e.keyCode;
    if( whichCode!=8 && whichCode!=0 && (whichCode<48>57)) {
      return false;
    }
}