borrame.com - Colección particular de recortes de código y documentación para programación web

Lo más fresco

  1. LPAD en SQL Server Nuevo
  2. Eliminar todos los objetos en SQL Server Modificado
  3. Dominio principal Nuevo
  4. Eliminar formato en Excel Nuevo

Sugerencias del chef

Lo más visitado

  1. Dar formato a un número
  2. Campo autonumérico
  3. Fecha y hora
  4. Cookies
  5. Convertir IP entre cadena y número

Dar formato a un número

O cómo pasar de 3141592.653 a 3.141.592,65. Si no recibe algo que se pueda convertir a número devuelve una cadena vacía.

/*
 * Da formato a un número para su visualización
 *
 * numero (Number o String) - Número que se mostrará
 * decimales (Number, opcional) - Nº de decimales (por defecto, auto)
 * separador_decimal (String, opcional) - Separador decimal (por defecto, coma)
 * separador_miles (String, opcional) - Separador de miles (por defecto, ninguno)
 */

function formato_numero(numero, decimales, separador_decimal, separador_miles){ // v2007-08-06
    numero=parseFloat(numero);
    if(isNaN(numero)){
        return "";
    }

    if(decimales!==undefined){
        // Redondeamos
        numero=numero.toFixed(decimales);
    }

    // Convertimos el punto en separador_decimal
    numero=numero.toString().replace(".", separador_decimal!==undefined ? separador_decimal : ",");

    if(separador_miles){
        // Añadimos los separadores de miles
        var miles=new RegExp("(-?[0-9]+)([0-9]{3})");
        while(miles.test(numero)) {
            numero=numero.replace(miles, "$1" + separador_miles + "$2");
        }
    }

    return numero;
}

Este recorte nació como un émulo de la función number_format() de PHP pero tiene algunas diferencias; principalmente, que los valores por defecto son distintos y que si no recibe un número válido no devuelve cero.

Historial

v2007-08-06
Arreglo de un fallo: no respetaba "" como separador decimal.
v2007-08-05
Primera versión.

Esta página ha sido impresa el jueves 11 de marzo de 2010 (20:54:15 +0100) desde http://borrame.com/recortes/javascript/formato-numero.html. La última vez que miré contenía HTML válido con CSS fresquito y si tiene flatas de ortografía ha sido sin querer.

borrame.com es el sitio anteriormente conocido como bits.demogracia.com (no confundir con Demogracia, que sólo pasaba por ahí).

© 2005-2010 by Álvaro G. Vicario (alvaro.es) • Burgos (España) • borrame.com