Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
940 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  C'est moi qui sait pas compter ou bien ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

C'est moi qui sait pas compter ou bien ?

n°538105
spark
Luc ?
Posté le 13-10-2003 à 13:18:54  profilanswer
 

voici le petit script suivant :


<?
 $a=192.3;
 $b=192.15;
 
 $c=$a-$b;
 echo $c;
?>


Qui m'affiche :

0.15000000000001


Délire nan ?
Qqn peux m'expliquer ce qui se passe ?

mood
Publicité
Posté le 13-10-2003 à 13:18:54  profilanswer
 

n°538109
simogeo
j'ai jamais tué de chats, ...
Posté le 13-10-2003 à 13:24:22  profilanswer
 

vous n'aimez pas tomber en panne, c'est tout a fait normal
 
voilà ce qu'il dit google lui ....
http://www.google.fr/search?q=192. [...] ogle&meta=
 
 
je te recommande de lui faire faire tes opérations arithmétiques [:cupra]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°538114
bjone
Insert booze to continue
Posté le 13-10-2003 à 13:26:45  profilanswer
 

erreur de calcul en virgule flottante, cherche y'a pas mal de topics sur le même problème...

n°538115
spark
Luc ?
Posté le 13-10-2003 à 13:27:02  profilanswer
 

je vais y penser :D :D
Bon sinon, c'est quoi ce bordel ?

n°538116
chrisbk
-
Posté le 13-10-2003 à 13:27:45  profilanswer
 

ca sent encore le pb de chiffre non representable en float ca

n°538118
spark
Luc ?
Posté le 13-10-2003 à 13:29:38  profilanswer
 

Bah je veux bien, mais si on peut pas faire 0.30-0.15 en php, ca va pas trop me plaire....

n°538119
spark
Luc ?
Posté le 13-10-2003 à 13:30:54  profilanswer
 

par contre:
echo 0.3-0.15;  
ca marche bien et m'affiche bien 0.15

n°538120
chrisbk
-
Posté le 13-10-2003 à 13:31:00  profilanswer
 

c'est pas un pb de php :O
c'est un probleme d'IEEE [:aloy]

n°538121
chrisbk
-
Posté le 13-10-2003 à 13:31:27  profilanswer
 

Spark a écrit :

par contre:
echo 0.3-0.15;  
ca marche bien et m'affiche bien 0.15


 
fo voir si il arrondi....

n°538122
bjone
Insert booze to continue
Posté le 13-10-2003 à 13:31:35  profilanswer
 

bin tu fais un arrondi à l'affichage....

mood
Publicité
Posté le 13-10-2003 à 13:31:35  profilanswer
 

n°538124
simogeo
j'ai jamais tué de chats, ...
Posté le 13-10-2003 à 13:34:13  profilanswer
 

chrisbk a écrit :

c'est pas un pb de php :O
c'est un probleme d'IEEE [:aloy]
 


c koi s'truc [:tilleul]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°538128
chrisbk
-
Posté le 13-10-2003 à 13:35:15  profilanswer
 

simogeo a écrit :


c koi s'truc [:tilleul]


 
un truc pour se la peter sur les forums :sol:
 
(format d'encodage des nombres flottant. pas le seul, mais le plus repandu (je crois :O))

n°538132
simogeo
j'ai jamais tué de chats, ...
Posté le 13-10-2003 à 13:38:13  profilanswer
 

chrisbk a écrit :


 
un truc pour se la peter sur les forums :sol:
 
(format d'encodage des nombres flottant. pas le seul, mais le plus repandu (je crois :O))


ah okay ... ben je connais po cett mairde ..  
 
moi j'encode en IFT6820 .. cai plus sur  :whistle:  et on se la pete plus avec un encodage plus underground :sol:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°538134
spark
Luc ?
Posté le 13-10-2003 à 13:39:15  profilanswer
 

mais j'en ai rien a foutre bordel de ce qu'il fait derriere. :lol: Ca marche pas avec easyphp ni sur le site de mon hebergeur !!!
Moi je veux que ca me retourne le bon resultat :D
Je demande pas la lune. Si un script php est pas capable de donner le bon resultat pour une soustraction toute conne, bah poubelle !!

n°538137
spark
Luc ?
Posté le 13-10-2003 à 13:40:27  profilanswer
 

bon, j'v au taf
j'espere que vous trouverez la solution
A+

n°538138
simogeo
j'ai jamais tué de chats, ...
Posté le 13-10-2003 à 13:41:36  profilanswer
 

Spark a écrit :

mais j'en ai rien a foutre bordel de ce qu'il fait derriere. :lol: Ca marche pas avec easyphp ni sur le site de mon hebergeur !!!


 
et je viens de tester en local config apache 1.3.28/php 4.3.3 et cai pareil :/


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°538143
chrisbk
-
Posté le 13-10-2003 à 13:46:23  profilanswer
 

Spark a écrit :

mais j'en ai rien a foutre bordel de ce qu'il fait derriere. :lol: Ca marche pas avec easyphp ni sur le site de mon hebergeur !!!
Moi je veux que ca me retourne le bon resultat :D
Je demande pas la lune. Si un script php est pas capable de donner le bon resultat pour une soustraction toute conne, bah poubelle !!
 


 
CAI LE CPU QUI TE FOURNI LE MAUVAIS RESULTAT TETE DE PIOCHE :O :O :O

n°538144
kadreg
profil: Utilisateur
Posté le 13-10-2003 à 13:47:09  profilanswer
 

chrisbk a écrit :


CAI LE CPU QUI TE FOURNI LE MAUVAIS RESULTAT TETE DE PIOCHE :O :O :O


 
Bah oui, c'est ça d'avoir un atlhon [:spamafote]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°538146
chrisbk
-
Posté le 13-10-2003 à 13:48:05  profilanswer
 

kadreg a écrit :


 
Bah oui, c'est ça d'avoir un atlhon [:spamafote]


 
On est pas sur hardware icyte [:ddr555]

n°538198
spark
Luc ?
Posté le 13-10-2003 à 14:21:29  profilanswer
 

Je veux bien que ce soit le cpu qui me donne le mauvais resultat, mais je savais pas que le php etait si bas niveau et si dependant du hardware ... :o
Sinon, sur mon poste au taf, ca me donne le bon resultat alors que c exactement la meme version de apache/mysql/php...
 
Une solution ?

n°538234
bjone
Insert booze to continue
Posté le 13-10-2003 à 14:52:59  profilanswer
 

ça te donne le résultat parceque l'affichage est arrondi/tronqué.... à priori

n°538243
bjone
Insert booze to continue
Posté le 13-10-2003 à 15:03:18  profilanswer
 

je viens de faire des essais en C, et ça donne ça en forçant 30 décimales après la virgule:
 
Double: 0.150000000000005680000000000000
Float: 0.150009155273437500000000000000
 
donc à priori ton php fait les calculs en double....
donc tu auras difficillement mieux au niveau calculatoire, fo juste que tu arrondisses à l'affichage....

n°538710
omega2
Posté le 13-10-2003 à 21:48:56  profilanswer
 

Spark a écrit :

Je veux bien que ce soit le cpu qui me donne le mauvais resultat, mais je savais pas que le php etait si bas niveau et si dependant du hardware ... :o
Sinon, sur mon poste au taf, ca me donne le bon resultat alors que c exactement la meme version de apache/mysql/php...
 
Une solution ?

Au mon dieux, le PHP, il utilises le CPU pour faire les calcul, [:armelanuel] mais alors que faire? [:axlrose]
Aller, je te donnes une solution qui vaut ce qu'elle vaut : t'invente un language qui fait ses calculs sur une feuille de papier, comme ça t'auras plus ce problème. :p
 
Bon, sans rire, comment tu veux que le php sache que le résultat obtenu n'est qu'une approximation (approximation en base binaire qui est la seule conus par les ordis) du résultat attendus? Si tu fais plus confiance au matériel qui est utilisé alors il ne reste plus qu'une seule solution : faire tout les calcul par algorythme en décomposant tout en entier avant virgule et après virgule.
Je te racontes pas la différence de vitesse entre l'utilisation du processeur et cette méthode là pour des cas finalement pas très nombreux en proportion. ;)

n°538804
spark
Luc ?
Posté le 13-10-2003 à 23:05:50  profilanswer
 

certes, mais je vois pas où est l'exploit de faire 0.1 + 0.7 = 0.8 et non 0.7999999 (comme dans la doc php...)
Sinon, j'ai rien touché à ma machine, à par la rebooter, et ca marche... je n'y comprends plus rien....

n°538811
omega2
Posté le 13-10-2003 à 23:14:37  profilanswer
 

Pourquoi est ce que je ne serais pas étoné que des programmes tels qu'office ont modifié des paramètres de l'OS ? :??:

n°538829
bjone
Insert booze to continue
Posté le 13-10-2003 à 23:39:05  profilanswer
 

Spark a écrit :

certes, mais je vois pas où est l'exploit de faire 0.1 + 0.7 = 0.8 et non 0.7999999 (comme dans la doc php...)
Sinon, j'ai rien touché à ma machine, à par la rebooter, et ca marche... je n'y comprends plus rien....


 
parceque l'affichage est arrondi, jamais tu lis ce qu'on t'écrit ?


Message édité par bjone le 13-10-2003 à 23:39:17
n°538834
chrisbk
-
Posté le 13-10-2003 à 23:43:35  profilanswer
 

BJOne a écrit :


 
parceque l'affichage est arrondi, jamais tu lis ce qu'on t'écrit ?


 
c'est Mr dubois [:spamafote]

n°538835
spark
Luc ?
Posté le 13-10-2003 à 23:44:12  profilanswer
 

chrisbk a écrit :


 
c'est Mr dubois [:spamafote]


:lol:

n°538837
chrisbk
-
Posté le 13-10-2003 à 23:45:04  profilanswer
 

tjs sur besac vieux bidule ? :O

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  C'est moi qui sait pas compter ou bien ?

 

Sujets relatifs
Que choisir pour bien programmer en Java ?Menu JS à intégrer pour qui soit tjs bien placé = IMPOSSIBLE ?!
Easy PHP fonctionne t-il bien sous Windows XP Pro ?Ai-je bien compris le principe de la POO ?
cherche personne savan utiliser tre bien le htmlLes logiciels gratuits pour bien programmer
[Power AMC] Qlq sait comment virer le type de données dans le schéma ?Livres Oreilly, ils sont bien ? Et leur Precis&Concis ?
[PHP] Je cherche 2 scripts ou bien 2 aides (Gestion fichiers/images)J'arrive pas a compter le nombre d'enregistrements d'une table(mysql)
Plus de sujets relatifs à : C'est moi qui sait pas compter ou bien ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR