Transforme un chiffre réel (virgule flotante) en un prix avec une précision "juste" de 2 chiffres aprés la virgule sous forme d'une chaine.
Ca parait simple, et pourtant... M'as fallut 1 heure pour y arriver, surtout quand ya 10, 20, ou N x 10 centimes pour ajouter le zéro à la fin :o|
Source / Exemple :
function ArrondiPrix(prix)
{
nxprix = new String();
nxprix = Math.floor(prix) + ".";
centime = new Number();
centime = Math.round((prix - Math.floor(prix)) * 100);
if (centime > 9) { nxprix = nxprix + centime; } else { nxprix = nxprix + "0" + centime; };
return nxprix;
}
Conclusion :
Prochainement grace à ce script: Achetez votre PC au juste prix avec www.netchallenge.fr
NB: Me dégoutez pas en disant qu'il y a déjà une fonction JS standard pour faire çà :o|
21 sept. 2004 à 11:57
tu as essayé :
function round(val, dec) {
return val.toFixed(dec);
}
have fun ;)
21 sept. 2004 à 12:31
Bizarre, ma doc JS indique pas ce deuxieme argument de Round :o| ...Cest du JS 1.3 ou 1.5 ?
Et, il renvoi bien un string ? Car round est une fct de math... Devrait renvoyé un entier "10.3" ou lieu de "10.30", non ? :op
21 sept. 2004 à 12:33
21 sept. 2004 à 13:01
La fonction prend en 1er argument, un float ou integer (val) qui correspond à la valeur à arrondir et en deuxieme argument, un integer (dec) qui correspond au nombre de décimales désirées après la virgule.
function round() c'est le nom que je lui est donné (j'aurais pu l'appeler toto)
je l'ai appellé round car la fonction de round est définie ainsi sous la plus part des langage.
Tu peux en effet l'appeler round car celle que tu utilise fait partie de la classe Math donc n'en est point affecté elle ne sera pas surchargé si tu veux savoir.
En ce qui concerne ce que la fonction retourne, c'est un type float mais rien ne t'empeche de la convertir en string.
Sache tout de même que si c'est pour un affichage le type float s'affiche tout aussi bien que le type string.
Have Fun.
27 sept. 2004 à 12:30
A charge de revanche, beez ;op
Le dicton du jour: "L'humilité est la qualité des grands sages"
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.