PHPAscal
Accueil Programmation web Optimisation Liens Fonctionnement du site À propos de l'auteur Plan du site
Programmation web CSS HTML PHP Javascript RSS SQL SSH, serveur linux Outils
  PHPascal a 71 articles


Modifier la couleur:



Valid XHTML 1.0 Transitional

CSS Valide !

Programmation web / Javascript / formatage d'un nombre javascript en prix

Script JS pour formater un prix a partir d'une valeur rationnel ou irrationnel

Voici un petit script simple pour faire ce travail :


<script language="javascript"  type="text/javascript">



//alert('Math.PI = ' + formatage_nombre(Math.PI));
//alert('12345.6789 = ' + formatage_nombre(12345.6789 ));
//alert('999999999 = ' + formatage_nombre(999999999));
//alert('-00001 = ' + formatage_nombre(-00001));
//alert('"6000123" = ' + formatage_nombre("6000123" ));
//alert('Rien = ' + formatage_nombre('Rien'));
//alert('Rien 2 = ' + formatage_nombre());


/*
* formatage du nombre en prix marche avec nombre entre -999999999 et 999999999
* @param float nombre a formater
* @return string nombre formater ($0.00 si nombre invalide recu)
*/
function formatage_nombre(fltNombre)
{
    try
    {
        var intTemp = 0;
       
        var fltNombre = parseFloat(fltNombre);
        if (isNaN(fltNombre)) fltNombre = 0;
       
        var fltNb = fltNombre;
       
        var strNb = '$ ';
       
        //  si negatif on met le signe - et on remet en positif
        if (fltNb < 0)
        {
            strNb += '-';
            fltNb = Math.abs(fltNb);
            fltNombre = Math.abs(fltNombre);
        }
       
        // affichage des millions au besoin
        if (fltNb >=  1000000)
        {
            intTemp = Math.floor(fltNb / 1000000);
            fltNb -= (intTemp * 1000000);
           
            if (intTemp < 100 && fltNombre >= 1000000000) strNb += '0';
            if (intTemp < 10 && fltNombre >= 1000000000) strNb += '0';
            if (intTemp == 0 && fltNombre >= 1000000000) strNb += '0';
           
            strNb += intTemp;
            strNb += ',';
            // si un nombre avec des million mais pas de millier on écrit ici 00 pour les milier ex: 6000123
            if (fltNb < 1000) strNb += '000,';
           
        }
       
        // affichage des millier
        if (fltNb >=  1000)
        {
            intTemp = Math.floor(fltNb / 1000);
            fltNb -= (intTemp * 1000);
            if (fltNombre >= 1000000)
            {
                if (intTemp < 100) strNb += '0';
                if (intTemp < 10) strNb += '0';
                if (intTemp == 0) strNb += '0';
            }
            strNb += intTemp;
            strNb += ',';
        }
       
        //alert('fltNombre = ' + fltNombre + '\n fltNb = ' + fltNb);
       
       
        // affichage des centaines
        if (fltNombre >= 1000)
            {
                if (fltNb < 100) strNb += '0';
                if (fltNb < 10) strNb += '0';
            }
        fltNb.toFixed(2);
        strNb += fltNb.toFixed(2);
       
       
        return strNb;
   
    }
    catch(e)
    {
    alert('Erreur formatage_nombre \n' + e.message);
    }

}

</script>
Article écrit le 1 août 2009
Article modifié le 1 août 2009



Autres articles sous la même catégorie


ADMIN | © PHPascal.com 2009
Temps d'exécution : 0.0059 sec
Fait au Québec