php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.10.2005, 13:12  
Gast
 
Beiträge: n/a
Standard 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;
    }
}
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.10.2005, 16:33  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

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.
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Alt 01.10.2005, 18:08  
Gast
 
Beiträge: n/a
Standard

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...
  Mit Zitat antworten
Alt 01.10.2005, 21:22  
Gast
 
Beiträge: n/a
Standard

Hallo Profi
Steht doch im Handbuch.
http://www.php.net/manual/en//function.is-double.php
Zitat:
Description
This function is an alias of: is_float().
und hhttp://www.php.net/manual/en/language.types.float.php
  Mit Zitat antworten
Alt 01.10.2005, 21:27  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Altlast.
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
20 Dollar Schein Off-Topic Diskussionen 5 01.06.2005 22:15

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php wunder

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.