FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: TomLee am 04 Februar 2021, 12:54:08

Titel: [gelöst] Perl-Meldung bei Division durch 0 vermeiden
Beitrag von: TomLee am 04 Februar 2021, 12:54:08
Hallo,

gibt es eine Möglichkeit diese Meldung:

Error evaluating hmod_sq_bla userReading percent: Illegal division by zero at ./FHEM/99_bla_myUtils.pm line 38.


zu vermeiden, wenn ich vorübergehend meiner Funktion :

sub usrpercent {

my $name = shift;
my $number = shift;
my $ek = shift;
my $ep=$number*$ek;
my $k=ReadingsNum($name,"blibla","0")*$number;
my $p=sprintf('%.2f',($k/$ep-1)*100);

return $p;
}


in $number und $ek eine 0 übergebe ?

Das Device vorübergehend zu deaktivieren ist nicht der Weg den ich suche, das Device soll weiterhin in einer readingsGroup dargestellt werden, nur halt mit Null.

Gruß

Thomas
Titel: Antw:Allgemeine Frage(n) zum rechnen in Perl
Beitrag von: Otto123 am 04 Februar 2021, 13:05:45
Hallo Thomas,

Also nur für die FHEM Kommandozeile zum testen 8)
{my $ep=0;;$ep='DeinGewünschterWert' if ($ep==0)}

Gruß Otto
Titel: Antw:Allgemeine Frage(n) zum rechnen in Perl
Beitrag von: betateilchen am 04 Februar 2021, 13:11:15

sub usrpercent {

my $name = shift;
my $number = shift;
my $ek = shift;
my $ep=$number*$ek;
my $k=ReadingsNum($name,"blibla","0")*$number;
my $p= ($ek == 0) ? "0.00" : sprintf('%.2f',($k/$ep-1)*100);

return $p;
}



Aber der Threadtitel ist mal wieder eine Vollkatastrophe.


--
Titel: Antw:Allgemeine Frage(n) zum rechnen in Perl
Beitrag von: TomLee am 04 Februar 2021, 13:28:28
Danke, beiden.

Zitat
Aber der Threadtitel ist mal wieder eine Vollkatastrophe.

Die Frage hätt ich mir auch besser gespart, erst nach dem stellen hab ich mir Gedanken gemacht, um dann selbst auf deinen Lösungsansatz zu kommen.
Titel: Antw:Allgemeine Frage(n) zum rechnen in Perl
Beitrag von: betateilchen am 04 Februar 2021, 19:20:09
Zitat von: TomLee am 04 Februar 2021, 13:28:28
erst nach dem stellen hab ich mir Gedanken gemacht,

Das beweist meine Theorie...
Titel: Antw:[gelöst] Perl-Meldung bei Division durch 0 vermeiden
Beitrag von: Otto123 am 04 Februar 2021, 19:29:34
Zumal es nichts mit Perl zu tun hat :)
Allgemeine Frage(n) zum rechnen ...

Was soll rauskommen bei der Division durch null? Udos Vorschlag ist eine Variante  - meine Vorschlag wäre eher 99999999999999
Titel: Antw:[gelöst] Perl-Meldung bei Division durch 0 vermeiden
Beitrag von: betateilchen am 04 Februar 2021, 19:42:54
Zitat von: Otto123 am 04 Februar 2021, 19:29:34
Udos Vorschlag ist eine Variante  - meine Vorschlag wäre eher 99999999999999

Das widerspricht aber dem geplanten Vorhaben...

Zitat von: TomLee am 04 Februar 2021, 12:54:08
das Device soll weiterhin in einer readingsGroup dargestellt werden, nur halt mit Null.