URL: https://linuxfr.org/users/snarky/journaux/le-pourquoi-windows-plante Title: Le Pourquoi Windows plante ! Authors: Snarky Date: 2007年08月18日T18:16:33+02:00 Tags: Score: 0 Voici un soucis que j'ai eu aujourd'hui et qui m'as fait perdre deux bonnes heures de boulot pour RIEN ! Bon, c'est en relation avec Microsoft Windows(c) mais ça prouve bien que même le B-A-BA du fonctionnement d'un logiciel et biaisé par l'OS, et provoque donc des plantages là où ça ne devrai pas. Alors voici mon problème, je suis en cours de portage d'une de mes applications vers Windows(c)... :-( Remarquant un bug d'une valeur, je part à la chasse au bug pour finalement isoler le bug suivant : double a = 800.0 ; double b = 0.75 ; double c = 0.6 ; double d = a*b*c ; printf("Prend %f * %f * %f = %f ( %i ) = %f ( %i ) %\n", a, b, c, a*b*c, (int)(a*b*c), d, (int)d) ; Même un développeur de base comprendra ce code. Et voici le résultat de l'exécution sous Windows (aucun soucis sous linux) : `Prend 800.000000 * 0.750000 * 0.600000 = 360.000000 ( 359 ) = 360.000000 ( 360 )` Peut-t-on m'expliquer ce que fou là ce 359 !? Windows compte mal à ce point ? Ca m'inquiète sincèrement sur la qualité d'application même bien développé... Pour information, ça a été compilé avec g++ 3.4.4 sous Windows. PS: A la base, je voulais poster ça dans le forum de developpez.net (qui est mieux pour les questions dev), mais il est HS. Donc j'ai voulu mettre sur ce forum, qui n'est pas accessible non plus, donc en désespoir de cause, je poste ici :-)

AltStyle によって変換されたページ (->オリジナル) /