Free javascript Hosting


convert-nb-lettre.js

Uploaded on Nov 18 2021 21:23 by ngoc.sanef

// base transco
// transco < 20
var inf_20 = ["zéro", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf"];
// transco 10x < 70
var dizn_inf_70 = ["dix", "vingt", "trente", "quarante", "cinquante", "soixante"];
// transco 80x & 100x
var _80_100 = ["quatre-vingt", "cent"];


// saisie intiale
var saisie = prompt("Saisir le nombre à convertir (entre 0 et 999) :","");
var nb_ent = parseInt(saisie,10);

// vérification saisie
while (isNaN(nb_ent) || nb_ent != saisie || nb_ent > 999 || nb_ent < 0) {
if (confirm("Saisie invalide ! Voulez-vous ré-essayer ?")) {
var saisie = prompt("Saisir le nombre à convertir (entre 0 et 999) :","");
var nb_ent = parseInt(saisie,10);
}
else {
break;
};
}

// résultat 10x
function resultat_10x(nb_ent_10x) {
// <20 & >=0
if (nb_ent_10x < 20) {
return inf_20[nb_ent_10x];
}
// <70 & >=20
else if (Math.floor(nb_ent_10x/10) < 7) {
// 10x
if (nb_ent_10x/10 == Math.floor(nb_ent_10x/10)) {
return dizn_inf_70[nb_ent_10x/10 - 1];
}
// <> 10x & fini par 1
else if (nb_ent_10x - Math.floor(nb_ent_10x/10)*10 == 1) {
return dizn_inf_70[Math.floor(nb_ent_10x/10) - 1] + "-et-" + inf_20[nb_ent_10x - Math.floor(nb_ent_10x/10)*10];
}
// <> 10x
else {
return dizn_inf_70[Math.floor(nb_ent_10x/10) - 1] + "-" + inf_20[nb_ent_10x - Math.floor(nb_ent_10x/10)*10];
}
}
// <80 & >=70
else if (nb_ent_10x < 80) {
// 71
if (nb_ent_10x == 71) {
return dizn_inf_70[dizn_inf_70.length - 1] + "-et-" + inf_20[11];
}
// autres
else {
return dizn_inf_70[dizn_inf_70.length - 1] + "-" + inf_20[nb_ent_10x - 60];
}
}
// 80
else if (nb_ent_10x == 80) {
return _80_100[0] + "s";
}
// <100 & >80
else if (Math.floor(nb_ent_10x/10) < 10) {
return _80_100[0] + "-" + inf_20[nb_ent_10x - 80];
}
else {
return "";
}
}

// résultat 100x
function resultat_100x(nb_ent_100x) {
// 100
if (nb_ent_100x >= 100 && nb_ent_100x < 200) {
return _80_100[1];
}
// <1000 & >100
else if (nb_ent_100x >= 200) {
// 100x
if (nb_ent_100x/100 == Math.floor(nb_ent_100x/100)) {
return inf_20[nb_ent_100x/100] + "-" + _80_100[1] + "s";
}
// <> 100x
else {
return inf_20[Math.floor(nb_ent_100x/100)] + "-" + _80_100[1];
}
}
}


// retour final
if (isNaN(nb_ent) || nb_ent != saisie || nb_ent > 999 || nb_ent < 0) {
alert("coucou! \rc'est pour convertir nombre en lettres");
}
else if (nb_ent < 100) {
alert("Voilà comment ça s'écrit : \r" + resultat_10x(nb_ent));
}
else if (nb_ent/100 != Math.floor(nb_ent/100)) {
alert("Voilà comment ça s'écrit : \r" + resultat_100x(nb_ent) + "-" + resultat_10x(nb_ent - Math.floor(nb_ent/100)*100));
}
else if (nb_ent/100 == Math.floor(nb_ent/100)) {
alert("Voilà comment ça s'écrit : \r" + resultat_100x(nb_ent));
}

Back to list