Decimal à 2 chiffres

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 895 fois - Téléchargée 28 fois

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

Ajouter un commentaire

Commentaires

coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26 -
pour ta vérification, il te faut utiliser une expression régulière... faire ça en négligeant les diférents types de variables, c'est pas super...

ton return n'est pas en fin de fonction, ça passe en C, mais pas en javascript...

et sinon, un exemple aurait été le bien vennu, même si pour une fonction aussi simple, on n'en a pas besoin...

et pour une fonction aussi simple, il serait bien de ne pas utiliser de variables globales...
tsatsis
Messages postés
2
Date d'inscription
dimanche 29 août 2004
Statut
Membre
Dernière intervention
4 septembre 2006
-
superbe ce formulaire sauf qu'il ne fonctionne chez moi !

Je l'utilise principalement dans une très grande matrice ou l'utilisateur doit rentrer des montatns (en fait une note des frais en ligne) donc je l'utilise en combinaison de la fonction onBlur dans ma

Peux-etre que je declare mal mes parametres ? pourriez vous je vous prie jeter un coup d'oeil, merci !

Bon alors le code telquel je me mets dans le head, entouré des balises script. Cela donne donc
<html>
<head>
<script language="JavaScript">
LE CODE
</script>
</head>

.. je ne le declare pas dans body !



puis à l'interieur de mon formulaire, le champ texte ressemble a ceci



Et ... cela ne fait RIEN quand je quitte le champ !!! Donc si j'introduit un chiffre à trois decimales ... ben il reste a trois decimales !

Auriez vous quelques pistes de rélfection, merci.


TSATSIS Christos
crilun
Messages postés
114
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
17 octobre 2006
-
en effet ce n'est pas la valeur qu'il faut passer en parametre mais l'id de ton control :
tsatsis
Messages postés
2
Date d'inscription
dimanche 29 août 2004
Statut
Membre
Dernière intervention
4 septembre 2006
-
Merci beaucoup ou avais-je la tête, Cela fonctionne !
bannik
Messages postés
3
Date d'inscription
lundi 6 mai 2002
Statut
Membre
Dernière intervention
20 juillet 2007
-
Sinon, pour l'arondi apres la virgule, la fonction toFixed(x) le fait tres bien.
x représente le nombre de chiffres aprés la virgule

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.