Wieso 'Division by 0 forbidden'

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Wieso 'Division by 0 forbidden'

Beitrag 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.. ?
Bild
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag 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 /:->
-.-"
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag 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^^
Zuletzt geändert von Jilocasin am 26.09.2007 18:07, insgesamt 1-mal geändert.
Bild
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag 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.
-.-"
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Captn. Jinguji
Beiträge: 397
Registriert: 07.06.2005 19:47
Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
Wohnort: Witten

Beitrag 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
Ist das Kunst hier, oder kann das weg ?
tmjuk
Beiträge: 380
Registriert: 30.06.2006 00:10
Wohnort: Backaryd, Schweden

Beitrag 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
Zuletzt geändert von tmjuk am 26.09.2007 20:00, insgesamt 1-mal geändert.
PB 4.51 32 Windows Vista, 32 XP, PB 4.51 32 Ubuntu 10.10
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Captn. Jinguji
Beiträge: 397
Registriert: 07.06.2005 19:47
Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
Wohnort: Witten

Beitrag von Captn. Jinguji »

Ist das Kunst hier, oder kann das weg ?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

yo genau.

...sowas ärgert mich absolut maßlos.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten