HTML / Javascript

Résolu
Bonjour,

Débutant dans le javascript, je dois créer un petit truc de conversion tout simple :

<html>
	<head>
		<script type="text/javascript">
			function Afficher()
			{
				HT = document.forms['form1'].HT.value
				TVA = document.forms['form1'].TVA.value
				TTC = HT + HT * TVA / 100
				
				message = "Prix H.T. : " + HT + "\n"
				message = message + "Taux T.V.A. : " + TVA + "\n"
				message = message + "Prix T.T.C. : " + TTC + "\n"
				
				alert(message)
			}
		</script>
	</head>
	
	<body>
		<form method="POST" name="form1">
			Prix H.T. : <input name="HT"/><br/>
			Taux T.V.A. : <input name="TVA"/><br/>
		
			<input type="button" value="Afficher" onClick="Afficher()"/>
		</form>
	</body>
</html>


mais je rencontre un problème lors de l'opération principale : au lieu de m'additionner le "HT" avec le "HT * TVA / 100", il me les met cote à cote ...

Est-ce que quelqu'un pourrait m'aider à résoudre mon problème ?

Merci

4 réponses

  1. Contributeur
    il doti considerer que c'est des chaines de caractère....

    essayes ca:

    parseInt() permet de convertir une variable en nombre
    parseFloat() permet de convertir une variable en nombre décimal
    1
    1. et comment on utilise ces fonctions ?
      0
    2. j'ai trouvé un petit truc ^^
      https://www.commentcamarche.net/contents/588-javascript-les-variables#parseint
      0
  2. Salut,

    Ton erreur viens du fait que lors de l'affichage de message, la variable TTC est considérée comme de type String (chaîne de caractères) et non pas comme numerique.
    Tu dois forcer le type de ta variable soit en plaçant des parenthèses autour de ton opération, soit en utiliant la fonction parseInt(string);
    1
    1. Contributeur
      Je sais, pas, a tout hasarre en mettant ce qui foire entre parentheses (ou en demandant a ton ami google):

      TTC = parsefloat(HT) + parsefloat(HT * TVA / 100)
      0
      1. merci à vous 2, problème résolu ^^

        la formule a tapé est donc :

        TTC = parseInt(HT) + HT * TVA / 100


        et ça marche.

        dire que ça fait 3h que j'essaye de bidouiller ... ^^
        0