ÉCRIRE UN MONTANT MONÉTAIRE SOUS FORME LITTÉRALE

alex610 Messages postés 2 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 1 mai 2011 - 1 mai 2011 à 07:12
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 - 2 mai 2011 à 01:07
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/52817-ecrire-un-montant-monetaire-sous-forme-litterale

007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
2 mai 2011 à 01:07
Oui bien entendu, il suffit de modifier le code...

Les premières lignes de la fonction litNbr() modifient autoritairement les entrées (la ligne 76 assure la réécriture si les lignes précédentes ont modifiés l'entrée e).

La ligne 73 supprime tout ce qui n'est pas digit, virgule ou espace de séparation...
La ligne 74 m'apparaît maintenant inutile, il suffit donc de la supprimer et de modifier la ligne 75 pour ne conserver qu'au plus trois décimales après la virgule (et supprimer ainsi tout ce qui pourrait suivre) :

n=n.replace(/(,[\d]{0,3})[\d,\s]+$/g,"$1");// sans plus de trois décimales

D'autres modifications sont indispensables notamment lors de la séparation de la partie entière et des décimales :

a=parseInt(m.replace(/^([\d]*)(,|\b)[\d]{0,3}$/g,"$1"));// éclaté

Encore qu'il ne soit pas utile de détailler la partie décimale pour ne conserver que la partie entière, l'expression suivante serait donc préférable
a=parseInt(m.replace(/^([\d]*)(,|\b)[\d]*$/g,"$1"));// éclaté

Ensuite, il convient de construire un nombre de trois chiffres pour les parties décimales incomplètes (0,3 Euros doit donner 300 millimes d'Euros et 0,57 Euros doit donner 570 millimes d'Euros.

Remplacer la ligne 82 : if (z.toString().length==1) z+='0';
par while (z.toString().length<3) z+='0';

Enfin les centimes doivent donner place à des millimes à moins qu'il ne s'agisse plus d'Euros mais de toute autre grandeur mesurable...

Bonne continuation
alex610 Messages postés 2 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 1 mai 2011
1 mai 2011 à 07:12
peut on avoir trois chiffre apres la virgule
Rejoignez-nous