Trucs et astuces‎ > ‎

Ecrire une somme en toutes lettres

Préambule

Rédigé le 27/11/2007 par Jessihash et extrait de son blog SuneidoFR. Cette contribution intéressante a été depuis intégrée dans Suneido.

Une petite fonction utilisant le méthode EnFrancais pour écrire une somme en euro et toutes lettres.

Le code

function(somme)
   {
   return (somme.Int().EnFrancais()) $ " euro"
   $ ((somme.Int())>1? "s" : "" )
   $ (somme.Frac() == 0? ( "" ) : ( " et "
   $ ((somme.Frac())*100).Round(0).EnFrancais()
   $ " centime" $ (((somme.Frac())*100)>1? "s" : "" )))
   }

Explications

On décompose la somme en sa partie entière et sa partie décimale : 

  •  Partie entière : somme.Int() 
  •  Partie décimale : somme.Frac()

On applique la méthode EnFrancais à ces deux parties.

On rassemble le tout en tenant compte : 

  •  du pluriel de euro : somme.Int()>1 ? "s" : "" 
  •  de l’affichage ou nom de centime : somme.Frac()==0 ?"" : ... 
  •  du pluriel de centime : somme.Frac()*100>1 ? "s" : ""