Suchen
Inside Forum
Nützliche Links




 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > PHP > PHP

PHP Alles rund um PHP

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 12.03.2018, 13:27
HarryHirsch HarryHirsch ist offline
Engagierter Besucher
 
Registriert seit: 19.04.2007
Beiträge: 347
Standard Problem mit Vergleich $var1 !== $var2 beim Typ float

Hallo, habe hier ein komisches Phänomen was ich mir nicht erklären kann.

In einem Unterprogramm wird folgendes gesetzt:
PHP Quellcode:
$var1 = 2.02;
$var2 = 2.02;

settype($var1, "float");
settype($var2, "float");

$meldung .= gettype($var1);
$meldung .= gettype($var2);

$meldung .= is_float($var1);
$meldung .= is_float($var2);

if($var1 !== $var2)
{$meldung .= "Test ok - nein";}
else{$meldung .= "Test ok - ja";}


Das Unterprogramm wird 5 mal aufgerufen.

Das Ergebnis der Meldungen ist folgendes:

id_testlauf: 1
Wert: 2.02
Wert: 2.02
type: double
type: double
is_float: 1
is_float: 1
Test ok - nein

id_testlauf: 2
Wert: 2.03
Wert: 2.03
type: double
type: double
is_float: 1
is_float: 1
Test ok - ja

id_testlauf: 3
Wert: 2.04
Wert: 2.04
type: double
type: double
is_float: 1
is_float: 1
Test ok - nein

id_testlauf: 4
Wert: 2.05
Wert: 2.05
type: double
type: double
is_float: 1
is_float: 1
Test ok - ja

id_testlauf: 5
Wert: 2.06
Wert: 2.06
type: double
type: double
is_float: 1
is_float: 1
Test ok - nein

Das heißt 3 mal wird ein Fehler beim Vergleich ausgegeben, obwohl Wert und Typ gleich sind.
Wird bei dem Vergleichsoperator !== noch etwas anderes als Wert und Typ verglichen?
Hab mir die md5-Werte auch mal anzeigen lassen - waren auch identisch.

Bin mit meinem Latein zur Zeit am Ende und weiß nicht, was ich sonst noch testen kann.
Mit Zitat antworten
  #2  
Alt 12.03.2018, 13:34
Kasalop Kasalop ist offline
Forum-Mitarbeiter
 
Registriert seit: 29.12.2006
Ort: München
Beiträge: 5.904
Standard AW: Problem mit Vergleich $var1 !== $var2 beim Typ float

Nicht testen... lesen: http://php.net/manual/de/language.types.float.php

Gang ganz dicker roter Kasten und den Abschnitt zu "Comparing floats"

Lg Kasalop
__________________
Es gibt 10 Arten von Menschen auf der Welt. Die die die binäre Mathematik verstehen und die die sie nicht verstehen!

Zu welcher der Gruppen gehörst du?
Mit Zitat antworten
  #3  
Alt 13.03.2018, 18:48
_jspit _jspit ist offline
Engagierter Besucher
 
Registriert seit: 02.02.2014
Beiträge: 756
Standard AW: Problem mit Vergleich $var1 !== $var2 beim Typ float

Die unscharfe Abbildung von Float's erklärt aber noch lange nicht, warum identische Anweisungen zu unterschiedlichen Ergebnissen führen sollen.

Führe ich obigen Code aus indem ich var1 und var2 mit identischen Werten bestücke, erhalte ich immer ein Test ok - ja" !

Da @HarryHirsch andere Ergebnisse ausweist, vermute ich, er macht nicht genau das was er uns mit obigen Code zeigen will. Daher zeige deinen echten Code, damit dein "Problem" für uns reproduzierbar wird.
__________________
jspit.de
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Float per if-Vergleich in Select liefert unerwarteten Wert spinne1000 Datenbanken 2 20.11.2015 13:23
Problem beim vergleich von 2 Variablen php2011 PHP 6 24.01.2011 19:48
Problem beim vergleich von zwei Strings oraley PHP 1 06.07.2009 21:14
NUR $var1 && NUR $var2 hanfmassel PHP 3 23.06.2008 16:42
Php-synonym zu Summe(var1,var2,var3) Pfandleiher PHP 4 20.03.2005 23:01


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:15 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC