[PHP] Wie kann ich den Error "Division by zero" bei einer Prozentrechnung beheben?

... komplette Frage anzeigen

4 Antworten

Geb die Variablen doch mal aus. Wenn der Wert nicht 0 wäre würdest du keinen Fehler erhalten.

Antwort bewerten Vielen Dank für Deine Bewertung

Dein $info[6] scheint 0 zu sein, eine Division durch 0 ist nicht möglich, daher der Fehler.

Beheben könntest du es beispielsweise indem du du folgenden Code vor der Zeile einbaust:

if $info[6] == 0 { $info[6] = 1; }

PS: Dann verfälschst du den Wert aber natürlich. Besser ist also:

if $info[6] == 0 { $online = 0; } else { $online = $info[5] / $info[6] * 100; }
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Felix193
08.05.2016, 17:57

Danke für die Antwort! So müsstes eigentlich sein:

if($info[6] == 0){ $info[6] = 1; }

Es ist aber blöd, dass $info[6] 0 ist, es sollte eigentlich 4 sein und es ist nicht so gut, wenn ich es einfach auf eins setze. Gibt's noch eine andere Fehlerquelle?

0

Probier es mal so:

if($info[5] == 0 || $info[6]==0)

{

echo "Division durch null";

}

else {

$erg = ($info[5] /  $info[6] )*100;


}

Dann fängst du den ERROR schon mal ab ! Dein Fehler liegt warscheinlich darin, dass deine Arrays falsch befüllt wurden oder zumindest eines der beiden...

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Felix193
08.05.2016, 18:01

Vielen Dank für die Antwort. Über die Methode von gumpo03 fange ich den Error ab. Jetzt ist das Problem, dass der Wert nie 0 ist. Momentan müsste er 4 sein. Wie bekomme ich es behoben, dass dieser 4 ist? Und $info[5] ist ebenfalls 1, trotzdem kommt 0 raus...

0
Kommentar von Felix193
08.05.2016, 20:16

nein, habe mich auch vertippt... Die Arrays 1-5 sind Strings, in denen werden einzelne Wörter abgespeichert

0
Kommentar von Felix193
08.05.2016, 20:16

Quatsch *0-4

0

Du musst prüfen, ob $info[5] und$ info[6] nicht 0 sind

if($info[5] !== 0 && $info[6] !== 0){
$online = $info[5] / $info[6] * 100;
} else {
$online = 0;
}
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Felix193
08.05.2016, 18:04

Danke erstmal für die Lösung, um den Error abzufangen. Leider ist das aber immernoch nicht das Ziel.

an anderen Stellen sind $info[5] und $info[6] Werte >0, aber bei der Prozentrechnung nicht. Woran kann es liegen?

0
Kommentar von maximilianus7
09.05.2016, 01:19

$info[5] darf durchaus 0 sein. in der grundschule nicht aufgepasst?

0

Was möchtest Du wissen?