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

Résolu/Fermé
Tzmagnum Messages postés 126 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 126 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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
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 126 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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Tzmagnum Messages postés 126 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 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
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 126 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 126 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