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:
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:
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; } }
Kommentar