Decimal à 2 chiffres

Contenu du snippet

Ce code recupere une valuer dans une zone de texte verifie l'integrité de la saisie et la convertit si possible ennombre decimal à 2 chiffres,efface le contenu en prevenant l'utilisateur sinon.

Source / Exemple :


function TestNombre(id) 
  { //Fonction prenant nu nombre dans une zone de texte : test si c'est un chiffre si oui le convertit en decimal(10e-2) sinon tante de le convertir en decimal
	// efface le contenu de la zone de saisie si convertion impossible
	// arrondit a 2 chiffres si il s'agit deja d'un decimal
        var d=document.getElementById(id); 
         if (d.value!='') 
		  { 

 					if (isNaN(d.value)==true)//si on tombe sur une virgule la valeur n'est pas considérée comme un nombre
					{
					Num=d.value.indexOf(','); 
					//on remplace la virgule par un point 
 					Resultat=d.value.substring(0,Num)+'.'+d.value.substring(Num+1,d.value.length);d.value=Resultat;d.value=Math.round(d.value*100)/100;
                          if (isNaN(d.value)==true)
 							{ 
							d.value='';
 							alert('VOUS DEVEZ SAISIR UN NOMBRE DECIMAL OU ENTIER'); 
 							return false; 
  							} 
 					} 

 				Temp=Math.round(d.value*100)/100;// on arrodi a 2 chiffres si decimal a plsu de 2 chiffres
				d.value=Temp;

					//on replace le nombre de zero necessaire derrier le chiffre
  					if ((d.value.length-Math.abs(d.value.indexOf('.')))==2)//cas ou un chiffre derriere la point.rem: la value absolue sert a ne pas tomber dasn le cas ou indexOf=-1
  					{ 
  					d.value =Temp+'0';
 					}
					else if (d.value.indexOf('.')==-1)// cas ou entier 
 					{
 					d.value=d.value+'.00'; 
  					} 
 					else if ((d.value.length-d.value.indexOf('.'))==1) //cas ou point mais pas de chiffres derriere 
 					{ 
 					d.value=Temp+'.00';
  					}
  				return true;
 			}
  	}

A voir également