Cardinaux et ordinaux

Contenu du snippet

Traduire les nombres en toutes lettres. S'il y a des erreurs, merci de me le faire savoir..................................................................

Source / Exemple :


<html><head><title>Cardinaux</title>
<script language="javascript"><!--
var unites=new Array("zéro","un","deux","trois","quatre","cinq","six","sept","huit","neuf","dix",
	"onze","douze","treize","quatorze","quinze","seize");
var soixante="soixante";
var quatrevingt="quatre-vingt";
var dizaines=new Array("",unites[10],"vingt","trente","quarante","cinquante",soixante,soixante,quatrevingt,quatrevingt);
var mul=new Array("cent","mille","million","milliard","billion","JeNeSaisPas");
var pp=new Array(100,1000,1000000,1000000000,1000000000000,1000000000000000);
var tiret="-";
var et=" et ";
var espace=" ";
var pluriel="s";
window.onerror=new Function("alert(\"Une erreur s'est produite dans le calcul\");return true;");
function getCardinal(n,debut)
{
 n=Math.abs(parseInt(n));
 if(""+n=="NaN")return "";
 var j=6;
 while(j--)
 {
  var z=parseInt(Math.floor(n/pp[j]));
  if(z>0)
  {
   var r=n % pp[j];
   if((j<2)&&(z==1))
   {
    if(r>0)return mul[j]+espace+getCardinal(r,debut);
    return mul[j];
   }
   var s=getCardinal(z,false)+espace+mul[j];
   if(r>0)return s+espace+getCardinal(r,debut);
   if((debut)&&(j==0))return s+pluriel;
   return s;
  }
 }
 if(n<17)return unites[n];
 var ndix=parseInt(Math.floor(n/10));
 var d=dizaines[ndix];
 n=n%10;
 if((ndix==7)||(ndix==9))
 {
  if((ndix==7)&&(n==1))return d+et+unites[11];
  if(n<7)return d+tiret+unites[n+10];
  return d+tiret+getCardinal(n+10,debut);
 }
 if(n==0)
 {
  if((debut)&&(ndix==8))return d+pluriel;
  return d;
 }
 if((n==1)&&(ndix!=8))return d+et+unites[n];
 return d+tiret+unites[n];
}
function getOrdinal(x)
{
 x=Math.abs(parseInt(x));
 if((""+x=="NaN")||(x==0))return "";
 if(x==1)return "premier";
 var t=getCardinal(x,false);
 var s=t.substring(t.length-1,t.length);
 if(s=="f")t=t.substr(0,t.length-1)+"v";
 else if(s=="e")t=t.substr(0,t.length-1);
 else if(s=="q")t=t+"u";
 return t+"ième";
}
function getCardinaux(x){return getCardinal(x,true);}
//--></script>
</head><body onLoad="document.f.t.focus()">
<form name="f">
<input type="texte" name="t" size="20" value="" onChange="document.f.r.value=getCardinaux(document.f.t.value)" />
<textarea name="r" rows="3" cols="100" value=""></textarea>
<br />
<input type="button" name="b1" value="Hasard" onclick="JavaScript:document.f.t.value=parseInt(Math.random()*999999999999999);" />
<input type="button" name="b2" value="Résultat" onclick="JavaScript:document.f.r.value=getCardinaux(document.f.t.value);document.f.r1.value=getOrdinal(document.f.t.value);" />
<textarea name="r1" rows="3" cols="100" value=""></textarea>
</form>
<div align="justify">
<script language="javascript"><!--
for(a=0;a<225;a++)document.write(getCardinaux(a),", ");document.write(getCardinaux(a),"...");
//--></script>
</div>
</body></html>

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.