Jump to content
Les Forums d'Infoclimat

Ce tchat, hébergé sur une plateforme indépendante d'Infoclimat, est géré et modéré par une équipe autonome, sans lien avec l'Association.
Un compte séparé du site et du forum d'Infoclimat est nécessaire pour s'y connecter.

Sign in to follow this  
xours

probleme de calcul php

Recommended Posts

Bonjour,

dans le cadre de la création de mon site météo je récupère les données de ma station(Vantagepro2) par le biais du fichier xml généré par Davis.

Jusque là tout va bien. Tout fonctionne. J'arrive à faire affiché toutes les données que je veux.

J'ai par contre un souci pour une partie des données qui sont en unité US.

J'essaie donc de les convertir au moment de leur insertion dans la page.

voici le code que j'utilise :

$tempmaxjF = getdata("TEMP_DAY_HIGH_F");

$tempmaxjC = round(($tempmaxjF - 32) * 0.56,1);

echo ($tempmaxjC);

Le calcul ne se fait pas.

Voila ce qui s'affiche sur ma page : 29 - 17,9 .

29 étant la valeur de $tempmaxjF au moment de l'execution de la page et 17,9 le résultat du calcul 32x0.56 .

Si tout fonctionnait, la formule devrait calculer (29-32)*0.56 soit -1.68°c

Comment faire pour que la formule fonctionne? est ce une histoire de parenthèse ou autre?.

Merci d'avance !

Share this post


Link to post
Share on other sites

Bonjour à vous.

Merci d'avoir pris le tps de répondre.

J'ai essayé vos 2 solutions.

Malheureusement aucune des 2 ne fonctionnent.

J'ai l'impression que la formule de calcul ne voit pas la valeur extraite comme comme un nombre mais plutôt comme du texte.

Si vous avez une autre idée ...

Je continue à chercher!

Merci

Share this post


Link to post
Share on other sites
Posted

Location : Haute-Loire - Coubon (650m)

tente ceci

$tempmaxjF = getdata("TEMP_DAY_HIGH_F");$tempmaxjC = round((parsefloat($tempmaxjF) - 32) * 0.56,1);echo ($tempmaxjC);

Share this post


Link to post
Share on other sites
Posted

Location : Les Estables (1350m)

Bonjour,

Essaye ceci :

$tempmaxjF = round(getdata("TEMP_DAY_HIGH_F"));

Share this post


Link to post
Share on other sites
Posted

Location : 10km est de Lisieux. Limite 14/27.

$tf = 50;$tc=($tf-32)/1.8;$tc=round($tc,1);echo $tc; 

Ca te donne bien 10 ?

Si oui, essaie :

$tf = floatval(getdata("TEMP_DAY_HIGH_F"));$tc=($tf-32)/1.8;$tc=round($tc,1);echo $tc; 

Share this post


Link to post
Share on other sites

J'ai effectivement bien 10 qui s'affiche dans l'exemple.

Mais le deuxieme code ne fonctionne tjs pas!

Merci

Share this post


Link to post
Share on other sites

La valeur lue par ton getdata("TEMP_DAY_HIGH_F") ne contiendrait-elle pas un nombre avec une virgule comme séparateur décimal au lieu d'un point, ce qui gênerait la conversion ?

Il faudrait que tu affiches avec un echo la valeur que tu as lue en l'encadrant de repères pour voir si il n'y a pas des espaces qui trainent:

echo "***".getdata("TEMP_DAY_HIGH_F")."***";

Share this post


Link to post
Share on other sites

Merci!

Je vérifie ça dans le début de semaine et je vous tiens au courant.

Share this post


Link to post
Share on other sites
Posted

Location : Noisy-le-Sec (93)

PROBLEME RESOLU !

MERCI A TOUS

Ça peut toujours être utile à d'éventuels lecteurs d'expliquer comment tu as résolu le problème default_wink.png/emoticons/wink@2x.png 2x" width="20" height="20">

Share this post


Link to post
Share on other sites

En fait le problème venait du script qui permet de parser le fichier xml de Davis.

Il y avait une erreur.

Cette erreur empêchait l'utilisation des valeurs extraites.

La formule que j'ai exposé au début du sujet, ainsi que celles proposées par les autres membres, fonctionnent en fait, toutes.

Merci!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...