Integer Variable in Float umwandeln

Hallo zusammen,

ich mache gerade meine allerersten Schritte in PHP, muss aber festsetellen das ich schon bei einem winzigen Script festhänge weil ich nicht weiß was ich tun muss. Bitte helft mir.

<?

 $windrichtung = GetValue(26452 /*[Wetterdaten\Wetter-Kombisensor\WIND_DIRECTION]*/); // Holt die alte variable

 $windrichtung = IPS_CreateVariable(2)
?>

Ich möchte aus der Variable 26452 (Integer) eine Floatvariable machen.
Wie ich den Wert hole und in einer Variable abspeichere das hab ich jetzt gemacht nur jetzt wir bei jeder Windrichtungsänderung eine ganz neue VAriable angelegt, er soll die alte aber nur aktualisieren

Gruß Philip

Philip

So mache ich es

$int = GetValueString("Wetter");  // Holt den wert aus String wetter
$float = (float)$int;    //ändert diesen ab
$float = floatval($int); 
SetValueFloat(34795 /*[IPS-2011\Haus\Variabelen\Ausen-Temperatur]*/ , $float);//Und setzt ihn in den Float

bei dir dann so


$float = (float)$windrichtung;
SetValueFloat(12345, $float);

Hallo neodaysleeper

vielen vielen Dank schon klappt es :smiley:

in PHP gibt es keine strikte Trennung zwischen Float und Integer bzw. sogar noch String.

Je nachdem, in welchem Zusammenhang eine Variable verwendest, ist Sie genau das, was Du gerade benötigst.

$a = 1; $b = 2; und $c = $a + $b

kommt

$c == 2

heraus. Hier wäre $c eigentlich eine Integer Variable.

Wenn Du aber nun sagst

$d = 'Der Inhalt von $c == '. $c;

dann wird $c als String behandelt und $d ist logischerweise der String

Der Inhalt von $c == 2

enthällt.

Wenn Du

$f = $a + 0.1;

macht, wird $f erst einmal als Float Wert betrachtet.

Wenn Du IPS_CreateVariable aufrufst ist es logisch, dass eine neue Variable herauskommt. Schließlich soll diese Funktion genau dies machen. Anlegen einer neuen Variable …

Was willst Du machen? Einen Set-Variable könnte es nur in deinem Windmesser geben; aber ich glaube nicht, dass es Sinn macht, der Wetter-Station die neue Windgeschwindigkeit manuell vorzugeben …

Ganz allgemein kann man mit IPS_GetVariable Variablen auslesen. Zum setzen muss man die jeweilige Funktion der Hardware (also hier deines Windmessers) benutzen.

[EDIT]
Da war wohl schon jemand schneller …