formatear-rut-chileno-separadores-de-miles

Dejo este minicodigo para formatear un RUT Chileno. El ejemplo parte de la base que el RUT viene sin formato y con el digito verficador incluido. Por ejemplo “099999999K”.


string rutSinFormato = "099999999K"
string rutFormateado = String.Empty;

//obtengo la parte numerica del RUT
string rutTemporal = rutSinFormato.Substring(0, rutSinFormato.Length - 1);

//obtengo el Digito Verificador del RUT
string dv = rutSinFormato.Substring(rutSinFormato.Length - 1, 1);

Int64 rut;

//aqui convierto a un numero el RUT si ocurre un error lo deja en CERO
if (!Int64.TryParse(rutTemporal, out rut))
{
	rut = 0;
}

//este comando es el que formatea con los separadores de miles
rutFormateado = rut.ToString("N0");

if (rutFormateado.Equals("0"))
{
	rutFormateado = string.Empty;
}
else
{
	//si no hubo problemas con el formateo agrego el DV a la salida
	rutFormateado += "-" + dv;

	//y hago este replace por si el servidor tuviese configuracion anglosajona y reemplazo las comas por puntos
	rutFormateado = rutFormateado.Replace(",", ".");
}

//la salida esperada para el ejemplo es 99.999.999-K
Response.Write("RUT Formateado: " + rutFormateado);