Wie eine Zahl auf 50 runden?

Begonnen von dougie, 30 Januar 2013, 11:13:26

Vorheriges Thema - Nächstes Thema

dougie


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

justme1968

etwas in der art  int($wert/50)*50 sollte funktionieren.

gruss
   andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

dougie


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

justme1968

das geht natürlich. ein einfaches +0.5 nach dem teilen erfüllt den gleichen zweck wenn es nur positive zahlen sind.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968