{"id":467,"date":"2011-01-07T14:23:49","date_gmt":"2011-01-07T13:23:49","guid":{"rendered":"https:\/\/d-mueller.de\/blog\/?p=467"},"modified":"2011-01-23T13:21:38","modified_gmt":"2011-01-23T12:21:38","slug":"php-wtf-3","status":"publish","type":"post","link":"https:\/\/d-mueller.de\/blog\/php-wtf-3\/","title":{"rendered":"PHP WTF #3"},"content":{"rendered":"<p>Und ein neuer WTF-Teil (<a href=\"https:\/\/d-mueller.de\/blog\/php-wtf-1\/\">Teil 1<\/a>, <a href=\"https:\/\/d-mueller.de\/blog\/php-wtf-2\/\">Teil 2<\/a>)! <\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">\r\nvar_dump(1\/3 + 4\/3 == 5\/3);\r\n<\/pre>\n<p>Ergebnis? <b>false nat\u00fcrlich<\/b>! Wie auch sonst, w\u00e4r ja anderenfalls kein WTF. Genaugenommen hat das &#8222;Ph\u00e4nomen&#8220; nichts mit PHP zu tun sondern mit Floating Point-Berechnungen und deren Pr\u00e4zision. Trotz allem hat mich der Spa\u00df gerade eine Viertelstunde Debugging-Zeit gekostet, und zwar in C++. Deswegen mal kurz in PHP getestet &#8211; mit gleichem Ergebnis.<\/p>\n<p><strike>Und noch einer:<\/strike><\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">\r\nvar_dump(19.99 + 19.99 == 49.98); \/\/bool(false)\r\n<\/pre>\n<p><b>Richtigstellung:<\/b> Schande \u00fcber mein Haupt und danke an Enrico (siehe Kommentar). Grober Rechenfehler meinerseits. Das Ergebnis lautet nat\u00fcrlich nicht 49.98, sondern <b>39.98<\/b>, was dann auch zu einem <i>bool(true)<\/i> f\u00fchrt.<\/p>\n<p>Wer in die harte Theorie dahinter einsteigen will oder Uni-Wissen auffrischen m\u00f6chte, ist <a href=\"http:\/\/docs.sun.com\/source\/806-3568\/ncg_goldberg.html\">hier<\/a> ganz gut aufgehoben.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Und ein neuer WTF-Teil (Teil 1, Teil 2)! var_dump(1\/3 + 4\/3 == 5\/3); Ergebnis? false nat\u00fcrlich! Wie auch sonst, w\u00e4r ja anderenfalls kein WTF. Genaugenommen hat das &#8222;Ph\u00e4nomen&#8220; nichts mit PHP zu tun sondern mit Floating Point-Berechnungen und deren Pr\u00e4zision. &hellip; <a href=\"https:\/\/d-mueller.de\/blog\/php-wtf-3\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,14,8,3],"tags":[],"class_list":["post-467","post","type-post","status-publish","format-standard","hentry","category-php","category-php-wtf","category-quicktips","category-webdev"],"_links":{"self":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/posts\/467","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/comments?post=467"}],"version-history":[{"count":0,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/posts\/467\/revisions"}],"wp:attachment":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/media?parent=467"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/categories?post=467"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/tags?post=467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}