Hello,
In meinem Script vergleiche ich einen Float-Wert mit einem Integer-Wert. Beide Werte sind in einem Array abgelegt. Beide Werte sind eine glatte Zahl. Dennoch gibt == immer false zurück.
Was ich versucht habe:
if ((float) $int[0] == (float) $float[0]) {
// Code hier wird nie ausgefuehrt
}
Die Idee mit dem Casten ist im Prinzip schon ganz gut, nur hast Du in die falsche Richtung casted.
if ((int) $int[0] == (int) $float[0])
{
// Code sollte jetzt bei Bedarf aus ausgefuehrt werden.
}
So würden die eventuell vorhandenen Nachkommastellen in der x-ten Stelle abgeschnitten werden beim Float-Wert. Der Int hat ja sowieso keine.
Anders herum würde der Int vermutlich sowieso automatisch durch integrale Promotion in den Float überführt werden, zumindest wenn es sich um eine in C/C++, Pascal oder ähnlichen Hochsprachen geschriebene Applikation handelt. Ich denke, PHP macht das auch so.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg