Seite 1 von 2

Wieso 'Division by 0 forbidden'

Verfasst: 26.09.2007 17:47
von Jilocasin
Moin :)
Hab wiedermal ein .. naja, kein Problem, vielmehr eine Frage:


Ein einzeiliges...

Code: Alles auswählen

Debug StrF(3 / (3/4))
(selbes auch ohne StrF(...) hab ich gerade festgestellt)

Gibt bei mir ein Division by 0 forbidden beim Kompilieren aus :?
Wieso denn das wenn ich mal fragen darf.. ?

Verfasst: 26.09.2007 17:58
von Green Snake
Ganz einfach, weil Division by 0 forbidden ist :mrgreen:
Eine Division durch null ist mathematisch nicht festgelegt und somit nicht zulässig.


Edit:
Und ka warum PB daraus null macht /:->

Verfasst: 26.09.2007 18:03
von Jilocasin
Das gibt schon Sinn Green Snake.. jeah.. :lol:
Aber wo bitteschön teile ich durch Null im Code ?

Edit: dein Edit kam ein paar Sekunden zu spät^^

Verfasst: 26.09.2007 18:05
von Green Snake
Siehe mein Edit.
Ka, ich nehme an, weil PB den ausdruck in der Klammer (3 / 4) zu einem Integer castet. Und das gibt null.


Edit:
Mit 3.0 / 4.0 gehts.

Verfasst: 26.09.2007 19:00
von Kaeru Gaman
es genügt, wenn eine der zahlen explizit als Float hingeschrieben wird.

...aber eigentlich ist das unlogisch, da der ausdruck bereits durch das StrF float-casted werden sollte...

Verfasst: 26.09.2007 19:42
von Captn. Jinguji
Kaeru Gaman hat geschrieben:es genügt, wenn eine der zahlen explizit als Float hingeschrieben wird.

...aber eigentlich ist das unlogisch, da der ausdruck bereits durch das StrF float-casted werden sollte...
Uneigentlich sorgen aber die Klammern wohl für die Reihenfolge der Auswertung der Ausdrücke, und deswegen rappelts

Verfasst: 26.09.2007 19:51
von tmjuk
So geht es aber

Code: Alles auswählen

Global a.f
Global b.f
Global c.f
a = 3
b = 3
c = 4

Debug a/b/c

Debug a/(b/c)
Debug StrF(a/b/c)
Debug StrF(a/(b/c))
Probiert mal Folgendes:

Code: Alles auswählen

Debug StrF(3/4)
Debug StrF(3/3/4)
;Debug StrF(3/(3/4))
Ich würde tippen, das StrF nicht mit den 2. Klammern klarkommt.

Torsten

Verfasst: 26.09.2007 19:53
von Kaeru Gaman
vor einiger Zeit hat sich im englischen forum einer mal lang und breit drüber
delectiert, dass PB immer ausdrücke von links nach rechts castet.

da ging es darum, dass man % oder & nicht verwenden kann bei einer
funktion die floats erwartet und deshalb alle argumente float-castet.

ich kriegs allerdings grad nicht rekonstruiert....

Verfasst: 26.09.2007 20:27
von Captn. Jinguji

Verfasst: 26.09.2007 20:43
von Kaeru Gaman
yo genau.

...sowas ärgert mich absolut maßlos.