Para calcular el digito tenemos:
POR EJEMPLO: 1 0 6 1 0 9 6 3 (cedula de identidad)
* * * * * * * *
Multiplico por: 3 2 7 6 5 4 3 2
resultado = 3 0 42 6 0 36 18 6 = resto (111 / 11) = 10.1 (aprox.)
luego la division anterior queda con el valor de "1"
operador = 11 - division
operador = 10
por lo tanto el digito verificador es K..
El codigo es el siguiente:
function valida_rut()
{
var bOk = true;
var num;
var suma=0,division,cont=2,fraccion,operador;
var j=1;
num=document.ingreso.rut.value;
if (num == "")
{
alert("Debe Ingresar Rut Alumno ...");
document.ingreso.rut.focus();
return false;
}
else
{
for(j=1;j<9;j++)
{
fraccion = num % 10; suma =suma + cont * fraccion;//ERROR en obtencion de la suma
num = num / 10;
cont++;
if(cont > 7)
cont = 2;
}
division = Math.round(suma % 11);
operador= 11 - division;
if(operador>=1 & operador<=9)
else if(operador==10)
alert("\nsu digito verificador es: k\n\n");
else if(operador==11)
alert("\nsu digito verificador es: 0\n\n");
}
return (true)
}
El problema es con el siguiente numero 10541839 debiese dar el digito = 6
pero nos da otro numero y por lo que pude ver me arroja inconvenientes al redondear !!
¡Como lo soluciono¡¡¡¡¡
Gracias de antemano ....