richie3366

js numbers to letters in french

Oct 19th, 2014
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.   var listeVals        = [1000000000, 1000000, 1000, 100, 80, 80, 60, 50, 40, 30, 20, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
  2.   var listeStrings     = ["milliard", "million", "mille", "cent", "quatre-vingts", "quatre-vingt ", "soixante", "cinquante", "quarante", "trente", "vingt", "seize", "quinze", "quatorze", "treize", "douze", "onze", "dix", "neuf", "huit", "sept", "six", "cinq", "quatre", "trois", "deux", "un"]
  3.   var compteQte       = [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  4.   var plurAndUnit     = [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  5.   var exactRequis     = [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  6.   var requiertTiretEt = [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  7.   var requiertTiretEt = [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  8.   var offreTiretEt    = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1];
  9.  
  10.   var mettreTiret         = false;
  11.   var precRequiertTiret   = false;
  12.   var precRequiertTiretEt = false;
  13.  
  14. function number2Letters(number){
  15.   mettreTiret = false;
  16.   precRequiertTiret = false;
  17.   precRequiertTiretEt = false;
  18.  
  19.   var res = "";
  20.   var nb = number;
  21.   for(var i=0;i<27;i++){
  22.     var val = listeVals[i];
  23.     if((exactRequis[i]==1 && nb ==val) || (nb >= val && exactRequis[i]==0)){
  24.       if(mettreTiret) res += '-';
  25.  
  26.       if(Math.floor(nb/val) > 1)
  27.         res += number2Letters(Math.floor(nb/val));
  28.       else if(Math.floor(nb/val) == 1 && plurAndUnit[i]==1){
  29.         res += number2Letters(1);
  30.         mettreTiret = false;
  31.       }
  32.  
  33.       if(precRequiertTiretEt && offreTiretEt[i]==1)
  34.         res += '-et-';
  35.       else if(precRequiertTiret && plurAndUnit[i]!=1)
  36.         res += '-';
  37.       else
  38.         res += ' ';
  39.  
  40.       res += listeStrings[i];
  41.  
  42.       precRequiertTiretEt = precRequiertTiretEt[i]==1;
  43.       precRequiertTiret   = plurAndUnit[i]!=1;
  44.  
  45.       nb = nb % val;
  46.     }
  47.  
  48.   }
  49.  
  50.   return res;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment