LIMITER LE NOMBRE DE DECIMALES

top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010 - 8 sept. 2004 à 15:05
cs_kyborash Messages postés 5 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 29 février 2008 - 15 sept. 2009 à 19:15
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26008-limiter-le-nombre-de-decimales

cs_kyborash Messages postés 5 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 29 février 2008
15 sept. 2009 à 19:15
Cinq ans après, cette ptite fonction trouve toujours preneur pour les allergiques aux maths comme moi :D
Merci à vous ^^
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
13 sept. 2004 à 10:58
Mème bien meilleur... Puisqu'elle limite ET arrondi !

On peut même limiter le calcul comme suit...

function getLimitFloatLength ( val :Number, length :Number ) :Number {
var pow :Number = Math.pow ( 10, length) ;
return Math.round ( val * pow ) / pow ;
}

Je crois que grâce `WhiteMagus.. Ta fonction est devenu parfaite...

Je prends !
Utilisateur anonyme
12 sept. 2004 à 01:14
ha ouai, pas con :)
WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010
12 sept. 2004 à 01:12
Je n'ai pas vraiment compris ce que vous voulez faire.
Mais il y a un moyen simple d'arrondir un nombre à quelques chiffres après la virgule.
Grâce à Math.pow :

// on arrondi n à d chiffre après la virgule
arrondi = function(n, d) {
return Math.round( n * Math.pow(10, d)) / Math.pow(10, d);
};

trace ("arrondi de 6.55957 à 2 chiffres après la virgule : " + arrondi(6.55957, 2));

Je ne sais pas ce que vous voulez faire mais je trouve que c'est une méthode qui serait sympa de connaître.
@+
Utilisateur anonyme
10 sept. 2004 à 16:15
courrage... retours à la maison lundi...
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
10 sept. 2004 à 10:19
EEHHH BW...
Sérieux, dors un peu, t arrives plus à écrire français !

= ))
Utilisateur anonyme
10 sept. 2004 à 01:15
c'est pas le but... on vx conserver les decimal en les limitants, pas les supprimer.
Tu doit etre nouveau sur le site, car sinon tu nous connaitrais top30 et moi, et tu ne nous preciserai pas cette fonction Math.floor()...
matteo_2r Messages postés 1 Date d'inscription samedi 20 décembre 2003 Statut Membre Dernière intervention 10 septembre 2004
10 sept. 2004 à 01:10
Math.floor(nombre);

Renvoie l'entier inférieur le plus proche.
Ex : 12,7584 => 12
Utilisateur anonyme
8 sept. 2004 à 16:43
ouai, bon, no comment ;)
suis fatigué en ce moment... et puis je passe plus de temps sur les macher financier que sur flash ces derniers jours... c'est d'ailleur pour un simulateur d'investissement que j'ai du coder cette fonction...
le code seras pas sur le site, ça interesse personne ce genre d'appli je pense...
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
8 sept. 2004 à 16:36
Tiens la preuve que Spit est super utile :


// Retourne un nom de fichier comme : "monImage.jpg" sans l'extention
// Quelque soit la longueur de l'extention...
function QuitExtention ( str :String ) :String {

return str.split('.')[0] ;
}

A plus... ; )
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
8 sept. 2004 à 15:56
OOOHHH BW !
Reveil toi.. C'est pas ton style allongé les Fucntions

; )
Utilisateur anonyme
8 sept. 2004 à 15:24
ouai, c'est une fonction que j'ai créé pour une de mes appli, et je l'ai mise de suite, et je me suis appercut seuleemnt ce matin que mon appli ne fonctionnait pas avec avec les 2entier...

correction:
function limitDecimal(num:Number, limit:Number):Number {
var pointIndex:Number = num.toString().indexOf(".", 0);
if (pointIndex == -1) {
return num;
} else {
var number:String = num.toString().substring(0, pointIndex);
var decimals:String = num.toString().substring(pointIndex+1, num.toString().length);
var newDecimals:String = decimals.substr(0, limit);
return Number(number+"."+newDecimals);
}
}
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
8 sept. 2004 à 15:05
J'aime bien l'idée... Mais ca marche pas avec les entiers !
Limite 12 renvoie 0.12 !

Essaie donc ca !

function FloatLength ( val :Number, length :Number) :Number {
var tmp:Array = String(val).split ('.') ;
if ( tmp[1] ) tmp[1] = tmp[1].substring (0, length) ;trace (length);
return Number (tmp.join('.')) ;
}

trace ( FloatLength ( 12.325566, 3 ) );
trace ( FloatLength ( 20, 3 ) );


Le if evite les NAN si la valeur à limiter est un entier !
[6/10] pour le bug non "penser"...

Split de String est une fonction bien plus qu'utile et peu utilisée...
Rejoignez-nous