UNPKG

chiffretolettre

Version:

transforme chiffre en lettre en français

86 lines (83 loc) 2.24 kB
function chiffreToLettre(nb) { if(nb==0)return "zero" let lettre = ''; if(nb<0){lettre="moin ";nb*=-1} const nombres = [ 'zero', 'un', // 1 'deux', // 2 'trois', // 3 'quatre', // 4 'cinq', // 5 'six', // 6 'sept', // 7 'huit', // 8 'neuf', // 9 'dix', // 10 'onze', // 11 'douze', // 12 'treize', // 13 'quatorze', // 14 'quinze', // 15 'seize', // 16 'dix-sept', // 17 'dix-huit', // 18 'dix-neuf', // 19 'vingt', ]; const dizaines = [ 'zeroo', 'dix', 'vingt', // 20 'trente', // 30 'quarante', // 40 'cinquante', // 50 'soixante', // 60 'soixante-dix', // 70 'quatre-vingt', // 80 'quatre-vingt-dix', // 90 'cent', // 100 ]; // billion if (nb >= 1000000000000){ if (Math.floor(nb / 1000000000000) == 1) lettre += 'un billion '; else lettre += chiffreToLettre(Math.floor(nb / 1000000000000)) + ' billions '; nb=nb%1000000000 } // miliard if (nb >= 1000000000){ if (Math.floor(nb / 1000000000) == 1) lettre += 'un milliard '; else lettre += chiffreToLettre(Math.floor(nb / 1000000000)) + ' milliards '; nb=nb%1000000000 } // milion if (nb >= 1000000){ if (Math.floor(nb / 1000000) == 1) lettre += 'un million '; else lettre += chiffreToLettre(Math.floor(nb / 1000000)) + ' millions '; nb=nb%1000000 } // miles if (nb >= 1000){ if (Math.floor(nb / 1000) == 1) lettre += 'mille '; else lettre += chiffreToLettre(Math.floor(nb / 1000)) + ' milles '; nb=nb%1000 } //cent if (nb >= 100){ if (Math.floor(nb / 100) == 1) lettre += 'cent '; else lettre += nombres[Math.floor(nb / 100)] + ' cents '; nb=nb%100 } //dizaine if(Math.floor(nb/10)==7 && nb>70)lettre+=dizaines[6]+" "+(nb%60==11?"et ":"")+nombres[nb%60] else if(Math.floor(nb/10)==9 && nb>90)lettre+=dizaines[8]+" "+(nb%80==11?"et ":"")+nombres[nb%80] else if(nb<20 && nb>0)lettre+=nombres[nb] else if(nb>=20 && nb>0){ lettre+=dizaines[Math.floor(nb/10)]+" " nb=nb%10 if(nb==1)lettre+="et un" if(nb>1)lettre+=nombres[nb] } return lettre } module.exports = chiffreToLettre;