. au lieu de , dans le traitement d'un formulaire

Résolu/Fermé
Tzmagnum
Messages postés
129
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022
- Modifié le 4 mars 2021 à 00:02
Tzmagnum
Messages postés
129
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022
- 4 mars 2021 à 11:11
Bonjour,

Pourquoi dans mon formulaire, je dois mettre 7.6 au lieu de 7,6 pour que sa affiche bien les données correctes (7 heures et 36 minutes) lors de l'éxecution php svp ?

Si j'écris dans le formulaire 7,6 au lieu de 7.6, cela m'affiche à l'éxecution 7 heures et 00 minutes.

Merci d'avance.

Je suis sous php 5.6.

Voici mon code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<?php

header('Content-type: text/html; charset=utf-8');

//------------------------------------------------------------//

if (empty($_POST['calcul_h_to_hm'])){
?>
<form method="post" action="">
Heure(s) à convertire : <input type="text" name="h" /> (Il faut utiliser le "." au lieu de la ",") <br /><br />
 <input type="submit" name="calcul_h_to_hm" value="Calculer" />
</form>
<?php
}
?>
<?php if (isset($_POST['calcul_h_to_hm'])){
$h=$_POST['h'];
$h_prepa=number_format($h, 2, '.', ',');
$h_res=intval($h_prepa);
$m_prepa=$h_prepa-$h_res;
$m_res=((($h_prepa-$h_res))*60);
if ($h_res < 2) {
$h_txt = 'heure';
}
elseif ($h_res >= 2) {
$h_txt = 'heures';
}
if ($m_res < 02) {
$m_txt = 'minute';
}
elseif ($m_res >= 02) {
$m_txt = 'minutes';
}
echo '<center>'.number_format($h_prepa, 2, ',', '.').' '.$h_txt.' correspond(ent) à '.$h_res.' '.$h_txt.' et '.$m_res.' '.$m_txt.'.</center>';
//echo $h_res.'h'.$m_res.'mins';
}
?>


Configuration: Windows / Chrome 88.0.4324.190

1 réponse

jordane45
Messages postés
36072
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 août 2022
4 288
4 mars 2021 à 00:09
Bonjour,

Comme la plus part des langages ... c'est la notation anglaise qui est utilisée;..

Voir la doc de php

Les nombres à virgule flottante (aussi connus comme "floats", "doubles", ou "nombres réels") peuvent être spécifiés en utilisant les syntaxes suivantes :

<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;

0
Tzmagnum
Messages postés
129
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022

4 mars 2021 à 00:32
Si je comprends bien c’est cette ligne qui pose problème d’après ce que vous dites svp ?

$h_prepa=number_format($h, 2, '.', ',');

Mais que dois-je modifier svp ? Je comprends pas

Merci d’avance
0
jordane45
Messages postés
36072
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 août 2022
4 288 > Tzmagnum
Messages postés
129
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022

4 mars 2021 à 00:35
Tu remplaces
$h_prepa=number_format($h, 2, '.', ',');

par :
$h_prepa=$h ;
0
Tzmagnum
Messages postés
129
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022
> jordane45
Messages postés
36072
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 août 2022

Modifié le 4 mars 2021 à 01:10
J’ai essayé même résultat si je mets dans la case html 7,6 après exécution php cela me met 7 heures et 00 minutes au lieu du bon résultat qui est 7 heures et 36 minutes, parcontre si dans la case html je mets 7.6 après exécution php sa affiche bien 7 heures et 36 minutes.

Bien à vous
0
devGnode
Messages postés
17
Date d'inscription
samedi 13 février 2021
Statut
Membre
Dernière intervention
5 mars 2021
2 > Tzmagnum
Messages postés
129
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022

4 mars 2021 à 01:25
Il ta dit que :

Comme la plus part des langages ... c'est la notation anglaise qui est utilisée;..


un chiffre à virgule en anglais s'écrit 2.50 en France 2,50

donc → $a = 2,5 + 2,5 ( interdit )

donc si tu as en html 7,55 en entré → bah replace , par . pour en faire un type number ^^
0
Tzmagnum
Messages postés
129
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022
> devGnode
Messages postés
17
Date d'inscription
samedi 13 février 2021
Statut
Membre
Dernière intervention
5 mars 2021

4 mars 2021 à 01:31
Vraiment désolé je suis débutant et malgré vos explications je comprends pas quoi changer dans mon code, j’ai essayé tout ce que je comprenais.

Sur les autres pages de mon site cela fonctionne et j’ai comparé les codes, je sais vraiment pas ce qu’il se passe.

Merci d’avance
0