FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: dougie am 30 Januar 2013, 11:13:26

Titel: Wie eine Zahl auf 50 runden?
Beitrag von: dougie am 30 Januar 2013, 11:13:26

Moin zusammen,

ich hab mein Programm für die Tank-Füllstandsanzeige fast fertig.
Das Problem mit schwankenden Messwerten hab ich durch Durchschnittsbildung in den Griff bekommen.

Die restliche Messunsicherheit liegt im Bereich von 50L (das sind in meinem Fall weniger als 2%)

Frage: wie kann ich eine Zahl im Bereich von 0 - 4500 immer auf volle 50 runden?

VG
Ralf
Titel: Aw: Wie eine Zahl auf 50 runden?
Beitrag von: justme1968 am 30 Januar 2013, 12:23:37
etwas in der art  int($wert/50)*50 sollte funktionieren.

gruss
   andre
Titel: Aw: Wie eine Zahl auf 50 runden?
Beitrag von: dougie am 30 Januar 2013, 13:01:55

Danke Andre!

Ich hab mal zur int() Funktion gegoogled, und wenn ich das richtig verstanden hab, schneidet die den Nachkommaanteil einfach ab und rundet nicht.

Ich war mal mutig und habe auf meiner FitzBox folgendes probiert:

use Math::Round qw/round/;
....
$result=50*round($wert/50);


Und das funktioniert!! :-)

Danke für den Tipp!

VG
Ralf
Titel: Aw: Wie eine Zahl auf 50 runden?
Beitrag von: justme1968 am 30 Januar 2013, 13:12:50
das geht natürlich. ein einfaches +0.5 nach dem teilen erfüllt den gleichen zweck wenn es nur positive zahlen sind.

gruss
  andre