Ankündigung

Einklappen
Keine Ankündigung bisher.

Fließkommaprobleme nicht unter PHP - Wunder oder Schein?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema Fließkommaprobleme nicht unter PHP - Wunder oder Schein?.

    Fließkommaprobleme nicht unter PHP - Wunder oder Schein?

    Da ich mich einige Zeit im Rahmen von Qualitätssicherungsarbeiten mit der Problematik von Fließkommazahlen beschäftigt habe wundert mich das PHP das Problem nicht aufweist, was eigentlich nicht sein kann - meiner Meinung nach nur länger aufgeschoben wird.

    In einen kurzen Beispiel zeige ich kurz welches eigentliche Problem in PH nicht auftritt. Selbst die Rückgabe wird noch zusätzlich auf float gecastet um sicherzugehen das float als Datentyp eingehalten wird:

    PHP-Code:
    <?php
    function get_float($fValue)
    {
        return 
    $fValue;
    }

    $fZahl = (float) get_float(1.4);
    $fZahl -= 0.2;


    if(
    $fZahl == 1.2)
    {
        print(
    "Die Fließkomma Erleuchtung!");
    }
    else
    {
        print(
    "Doch eher ein Schein");
    }
    ?>

    Aus welchem Grund arbeitet PHP bei der Fließkommeberechnung anders als C oder C++, in diesem Beispiel wird zwar auf Gleichheit geprüft allerdings nicht der else-Part genommen.

    Wer das ganze als C Stück sich ansehen will sollte folgendes komilieren:

    Code:
    #include <stdio.h>
    
    int main()
    {
        float fZahl;
        
        fZahl = 1.4;
        fZahl -= 0.2;
        
        if(fZahl == 1.2)
        {
             printf("Die Erleuchtung: %f\n", fZahl);
             system("pause");
             
             return 0;
        }
        else
        {
             printf("Die Taeuschung: %f\n", fZahl);
             system("pause");
             
             return 1;
        }
    }

  • Waq
    antwortet
    Altlast.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Hallo Profi
    Steht doch im Handbuch.
    http://www.php.net/manual/en//function.is-double.php
    Description
    This function is an alias of: is_float().
    und hhttp://www.php.net/manual/en/language.types.float.php

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Wie ich das Problem in meinen C Beispiel verschieben kann ist mir schon bewusst

    Allerdings wundert mich dann in PHP das es beispielsweise als Typenprüfung is_float() und is_double() gibt wenn Fließkommazahlen in PHP generell als double behandelt werden. Naja...

    Einen Kommentar schreiben:


  • Waq
    antwortet
    In diesem Fall ist das Problem verschoben, weil PHP doubles benutzt, die deinem C-Programm als Ersatz für float auch auf die Sprünge helfen.

    Einen Kommentar schreiben:

Lädt...
X