Une simple soustraction qui ne se fait pas...
Résolu/Fermé
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
-
10 déc. 2013 à 12:53
ephelya Messages postés 282 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 - 10 déc. 2013 à 15:03
ephelya Messages postés 282 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 - 10 déc. 2013 à 15:03
A voir également:
- Une simple soustraction qui ne se fait pas...
- Iphone 14 simple - Guide
- Simple ocr - Télécharger - Bureautique
- Simple file locker - Télécharger - Sécurité
- Organigramme simple - Guide
- Montage video simple windows - Guide
7 réponses
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
Modifié par ThEBiShOp le 10/12/2013 à 13:02
Modifié par ThEBiShOp le 10/12/2013 à 13:02
Salut,
ta ligne :
affiche simplement un chaine de caractère, pour la comprendre, elle est exactement équivalente à ceci :
C'est donc absolument normal qu'aucun calcul ne se fasse et que tu affiches juste la ligne telle quelle.
Ceci :
Devrait t'afficher le résultat par contre.
ta ligne :
echo "$achat_net = $prix_achat - $prix_achat*$commission_achat ";
affiche simplement un chaine de caractère, pour la comprendre, elle est exactement équivalente à ceci :
echo $achat_net.' = '.$prix_achat.' - '.$prix_achat.'*'.$commission_achat;
C'est donc absolument normal qu'aucun calcul ne se fasse et que tu affiches juste la ligne telle quelle.
Ceci :
echo $achat_net = $prix_achat - $prix_achat*$commission_achat;
Devrait t'afficher le résultat par contre.
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
2
10 déc. 2013 à 13:54
10 déc. 2013 à 13:54
Au contraire, le calcul devrait déjà être fait au stade de echo, la variable $achat_net a été calculée à la ligne précédente (c'est juste pour vérifier les diférentes valeurs que je me suis contentée de recopier la formule dans le echo).
Et si je fais
Je me demandais si ce n'était pas lié à un problème de formatage à un niveau ou un autre, parce que si on arrondit 0,034, en effet, ça donne 0 et ça justifie le résultat. Sauf que
Et si je fais
ça m'affiche 706 = 706 - 0, donc ça ne change rien.
echo $achat_net = $prix_achat - $prix_achat*$commission_achat;
Je me demandais si ce n'était pas lié à un problème de formatage à un niveau ou un autre, parce que si on arrondit 0,034, en effet, ça donne 0 et ça justifie le résultat. Sauf que
me donne 0,0000.
$commission_achat = number_format($commission_achat, 4, ',', ' ');
echo $commission_achat;
Bruce Willix
Messages postés
11966
Date d'inscription
mardi 24 mai 2011
Statut
Contributeur
Dernière intervention
12 juin 2018
2 592
10 déc. 2013 à 13:58
10 déc. 2013 à 13:58
Génial, voilà qui va stabiliser les bourses mondiales ^^
Le Trading haute fréquence c'est le mal...
bon -> []
Le Trading haute fréquence c'est le mal...
bon -> []
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
2
10 déc. 2013 à 14:00
10 déc. 2013 à 14:00
(je voulais juste dire que je n'attendais pas du echo qu'il me fasse le calcul, je me suis peut-être mal exprimée! :-) )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
10 déc. 2013 à 14:01
10 déc. 2013 à 14:01
Non.
Que tu aies fais ton calcul avant ou pas n'y changera strictement rien...
Affiche le résultat.
Affiche l'opération de la façon dont je l'ai décrite au dessus.
Tu as l'air sûre de toi, alors j'ai vérifié, malgré que c'était inutile.
Je ne sais pas ce que tu as fait ou ce que tu n'as pas fait, mais mon explication est la bonne.
Que tu aies fais ton calcul avant ou pas n'y changera strictement rien...
echo $achat_net = $prix_achat - $prix_achat*$commission_achat;
Affiche le résultat.
echo "$achat_net = $prix_achat - $prix_achat*$commission_achat";
Affiche l'opération de la façon dont je l'ai décrite au dessus.
Tu as l'air sûre de toi, alors j'ai vérifié, malgré que c'était inutile.
Je ne sais pas ce que tu as fait ou ce que tu n'as pas fait, mais mon explication est la bonne.
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
2
10 déc. 2013 à 14:20
10 déc. 2013 à 14:20
Pardon si je me suis mal exprimée, la seule chose dont je sois sûre c'est que le problème ne vient pas de là, puisque la variable $achat_net à ce stade est connue et devrait être affichée avec ta formule comme avec la mienne.
Ce que démontre ta formule montre par contre, c'est que $prix_achat*$commission_achat = 0, alors que ça devrait faire 24,0193 puisque $prix_achat*$commission_achat affiche bien 706,45 * 0,034 dans ma formule (dont le but était uniquement de vérifier justement les valeurs prises en compte pour le calcul)
et c'est là qu'il y a un souci... D'où mon interrogation concernant le formatage, mais comme je ne comprends absolument pas cette erreur, je n'en ai aucune idée...
@Bruce Willix : rassure-toi, aucun trading haute fréquence en vue, au contraire, je ne trade qu'une fois par jour voire tous les 2 ou 3 jours, mon script me permet simplement d'éviter de passer mes journées collée à l'écran pour guetter les marges, rien d'autre, et il n'investit même pas à ma place. :-)
Ce que démontre ta formule montre par contre, c'est que $prix_achat*$commission_achat = 0, alors que ça devrait faire 24,0193 puisque $prix_achat*$commission_achat affiche bien 706,45 * 0,034 dans ma formule (dont le but était uniquement de vérifier justement les valeurs prises en compte pour le calcul)
et c'est là qu'il y a un souci... D'où mon interrogation concernant le formatage, mais comme je ne comprends absolument pas cette erreur, je n'en ai aucune idée...
@Bruce Willix : rassure-toi, aucun trading haute fréquence en vue, au contraire, je ne trade qu'une fois par jour voire tous les 2 ou 3 jours, mon script me permet simplement d'éviter de passer mes journées collée à l'écran pour guetter les marges, rien d'autre, et il n'investit même pas à ma place. :-)
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
Modifié par ThEBiShOp le 10/12/2013 à 14:32
Modifié par ThEBiShOp le 10/12/2013 à 14:32
Quand je pose ça :
J'obtiens bien le bon résultat.
Avec le fragment de code que tu donnes, difficile d'en savoir plus.
$achat_net; $prix_achat = 706.45; $commission_achat = 0.034; $achat_net = $prix_achat - $prix_achat*$commission_achat; echo "$achat_net = $prix_achat - $prix_achat*$commission_achat";
J'obtiens bien le bon résultat.
Avec le fragment de code que tu donnes, difficile d'en savoir plus.
Bruce Willix
Messages postés
11966
Date d'inscription
mardi 24 mai 2011
Statut
Contributeur
Dernière intervention
12 juin 2018
2 592
10 déc. 2013 à 14:40
10 déc. 2013 à 14:40
Alors conseil de ma part: empoche ton bénef et fuis ^^ Les petits acteurs (et par petits acteurs, je parle principalement de nous, mais aussi des entreprises et des états) vont être les grands pigeons des marchés boursiers dans le futur. Ton script et ton cerveau n'ont absolument aucune chance face aux ordinateurs d'Hudson Street :D
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
2
10 déc. 2013 à 14:50
10 déc. 2013 à 14:50
Malheureusement, je n'ai pas plus d'éléments que ceux que j'ai déjà donnés...
J'ai des variables connues et un calcul qui manifestement considère d'un seul coup comme nulle une des variables alors qu'à la ligne d'avant c'était ok, et ça me dépasse, j'avoue, je ne vois pas du tout quel type de cause peut générer ce genre d'erreur... :'-(
@Bruce Willix : je ne suis pas en danger, parce que je ne fais que des opérations instantanées d'achat / revente, je ne spécule pas. S'il y a une opportunité, je la saisis, sinon je ne bouge pas, mais le risque est nul. :-)
Par contre, est-ce que c'est le mal, là c'est un autre débat... :-)
J'ai des variables connues et un calcul qui manifestement considère d'un seul coup comme nulle une des variables alors qu'à la ligne d'avant c'était ok, et ça me dépasse, j'avoue, je ne vois pas du tout quel type de cause peut générer ce genre d'erreur... :'-(
@Bruce Willix : je ne suis pas en danger, parce que je ne fais que des opérations instantanées d'achat / revente, je ne spécule pas. S'il y a une opportunité, je la saisis, sinon je ne bouge pas, mais le risque est nul. :-)
Par contre, est-ce que c'est le mal, là c'est un autre débat... :-)
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
10 déc. 2013 à 14:57
10 déc. 2013 à 14:57
Moi non plus, je ne vois pas, vu que tu ne m'as donné qu'un infime fragment de ton code qui n'explique absolument pas ce qui se passe :)
Je ne pense pas que ça vienne de là, mais traite tes variables numériques comme telle, et pas comme des chaines.
Le fragment que tu montres indique que $commission_achat peut être de '0.05' ou de '0' et ensuite tu nous dis comme si de rien n'était que ça vaut 0.034. Difficile à suivre...
Je ne pense pas que ça vienne de là, mais traite tes variables numériques comme telle, et pas comme des chaines.
$var = 0.5; // $var est un float $var = '0.5'; // $var est une chaine
Le fragment que tu montres indique que $commission_achat peut être de '0.05' ou de '0' et ensuite tu nous dis comme si de rien n'était que ça vaut 0.034. Difficile à suivre...
ephelya
Messages postés
282
Date d'inscription
mercredi 28 septembre 2011
Statut
Membre
Dernière intervention
20 juin 2023
2
10 déc. 2013 à 15:03
10 déc. 2013 à 15:03
Le problème est résolu !
Il ne venait pas du code, mais du fait que les valeurs récupérées étaient du type "0,034" et non "0.034", donc c'était un pb de formatage, tout simplement.
C'est quand j'ai vu les valeurs sur ton test que ça m'a sauté aux yeux, donc merci!! :-)
(pardon pour les valeurs changeantes, comme mon script récupère des valeurs en temps réel, ça bouge, et je n'ai pas toujours pensé à remettre les valeurs du début pour que tu puisses suivre)
Il ne venait pas du code, mais du fait que les valeurs récupérées étaient du type "0,034" et non "0.034", donc c'était un pb de formatage, tout simplement.
C'est quand j'ai vu les valeurs sur ton test que ça m'a sauté aux yeux, donc merci!! :-)
(pardon pour les valeurs changeantes, comme mon script récupère des valeurs en temps réel, ça bouge, et je n'ai pas toujours pensé à remettre les valeurs du début pour que tu puisses suivre)