Calculatrice PHP

Résolu
Bonjour,
J'ai fait une calculatrice en php mais cette dernière ne calcule pas les nombre à virgule. Quand je saisi des nombre à virgule avec le oint ou la virgule du clavier, j'ai une erreur comme retour. Mais ça fonctionne avec les entiers. Voici le code
<code>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form method="post" action="operation.php">

<label for="valeur1" style="display:block; float:left; width:70px">Valeur 1</label>

<input type="number" name="valeur1" id="valeur1" value="<?php
if (isset($_POST['valeur1'])) echo $_POST['valeur1']; ?>"/><br/><br/>

<label for="operateur" style="display:block; float:left; width:70px">Opérateur</label>
<select name="operateur" id="operateur">
<option value="+" <?php
if (isset($_POST['operateur']) AND $_POST['operateur']=="+") {
echo "selected";
}?>>+
<option value="-" <?php
if (isset($_POST['operateur']) AND $_POST['operateur']=="-") {
echo "selected";
}?>>-
<option value="*" <?php
if (isset($_POST['operateur']) AND $_POST['operateur']=="*") {
echo "selected";
}?>>*
<option value="/" <?php
if (isset($_POST['operateur']) AND $_POST['operateur']=="/") {
echo "selected";
}?>>/
</select><br/><br/>

<label for="valeur2" style="display:block; float:left; width:70px">Valeur 2</label>

<input type="number" name="valeur2" id="valeur2" value="<?php
if (isset($_POST['valeur2'])) echo $_POST['valeur2']; ?>"/><br/>

<input type="submit" name="bSubmit" value="Valider">
</form>
<p>
<?php

if(!is_null($_POST['valeur1']) && !is_null($_POST['valeur2']))
{
$valeur1 = htmlspecialchars($_POST['valeur1']);
$valeur2 = htmlspecialchars($_POST['valeur2']);

if($_POST['operateur'] == "/" && $_POST['valeur2'] == 0)
{
$erreur = "Un nombre ne peut pas être divisé par 0";
}//else{ $resultat = $_POST['valeur1'].$_POST['operateur'].$_POST['valeur2']; }
elseif($_POST['operateur'] == "+")
{
$resultat = $valeur1 + $valeur2;
}
elseif($_POST['operateur'] == "-")
{
$resultat = $valeur1 - $valeur2;
}
elseif($_POST['operateur'] == "*")
{
$resultat = $valeur1 * $valeur2;
}
elseif($_POST['operateur'] == "/" && $_POST['valeur2'] != 0)
{
$resultat = $valeur1 / $valeur2;
}

}else { $erreur = "Vous devez saisir des valeurs"; }
if(isset($erreur)) echo "<font color='red'>".$erreur."<font>";
if(isset($resultat)) echo "Le résultat est : ".$resultat;
?></p>
</body>
</html>
<code>

Aidez moi svp

2 réponses

  1. Contributeur
    Salut,
    il faut que tu rajoutes ça
    step="0.01"
    dans tes inputs, le type number par défaut est limité aux nombres entiers, voir ici : https://developer.mozilla.org/fr/docs/Web/HTML/Element/Input/number#Autoriser_les_valeurs_décimales .
    0
    1. Modérateur
      ou any pour n'importe quelle valeur
      <input type="number" step="any" />
      
      0
    2. MERCI ça a marché avec le step ="any"
      0