Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Division durch Null mit unterschiedlichen Ergebnissen (https://www.delphipraxis.net/153419-division-durch-null-mit-unterschiedlichen-ergebnissen.html)

messie 2. Aug 2010 12:14

Delphi-Version: 2009

Division durch Null mit unterschiedlichen Ergebnissen
 
Moin,

ich beschäftige mich gerade mit MadExcept und wollte einen Programmabsturz erzeugen. Am schönsten ist eine Division durch Null, dachte ich.
Delphi-Quellcode:
var
  i : integer;
{$R *.res}

begin
  ShowMessage(FloatToStr(i/0));
  Application.ProcessMessages;
  Application.Initialize;
Wenn ich ein neues Projekt baue, funzt das super, bei dem Zielprojekt aus Delphi 6 bekomme ich "INF" für Infinite gemeldet.

Wovon hängt es denn ab, wie eine Division durch Null behandelt wird?

Danke, Messie

himitsu 2. Aug 2010 12:27

AW: Division durch Null mit unterschiedlichen Ergebnissen
 
Das hängt davon ab, wie der mathematische (Co)Prozessor eingestellt ist.

hier steht Näheres datzu (und irgendwo in der OH sollte auch noch was geschrieben sein)
https://forums.codegear.com/thread.j...ssageID=163649

xZise 2. Aug 2010 13:19

AW: Division durch Null mit unterschiedlichen Ergebnissen
 
Moin,
das "Problem" ist, dass eine Gleitkommazahl durch 0 geteilt werden "kann" (siehe NaN auf der Wikipedia).

Du sollest einfach IntToStr nutzen. Und dann eventuell dann mit "div" teilen.

MfG
Fabian

OrNEC 2. Aug 2010 13:29

AW: Division durch Null mit unterschiedlichen Ergebnissen
 
Division durch Null???

Seit wann ist denn das möglich? :shock:

Bernhard Geyer 2. Aug 2010 13:37

AW: Division durch Null mit unterschiedlichen Ergebnissen
 
Zitat:

Zitat von OrNEC (Beitrag 1038975)
Division durch Null???

Seit wann ist denn das möglich? :shock:

Seitdem es DirectX gibt :stupid:

Der Wert "INF" zeigt ja auch das es keine "richtige" Zahl ist. Aber im Bereich DirectX/Spiele ist ein "INF" performanter als hier immer mit try/except zu arbeiten oder jedesmal eine Abfrage auf Null zu haben. Ob nun bei einem Ego-Shooter das 4 Pixel auf der Nase von oben etwas Dunkler/Heller ist, ist wohl egal.

messie 2. Aug 2010 13:45

AW: Division durch Null mit unterschiedlichen Ergebnissen
 
Zitat:

Zitat von himitsu (Beitrag 1038956)
Das hängt davon ab, wie der mathematische (Co)Prozessor eingestellt ist.

hier steht Näheres datzu (und irgendwo in der OH sollte auch noch was geschrieben sein)
https://forums.codegear.com/thread.j...ssageID=163649

Jau danke! :thumb:

Da wird wohl irgendeine Komponente während ihrer Initialisierung am CoPro rumgedreht haben, die im neuen und nackten Projekt nicht drin ist. Interessant.

Grüße, Messie

xZise 2. Aug 2010 14:09

AW: Division durch Null mit unterschiedlichen Ergebnissen
 
Zitat:

Zitat von OrNEC (Beitrag 1038975)
Division durch Null???

Seit wann ist denn das möglich? :shock:

Seitdem ich da Anführungszeichen hinsetze!!!

Ich habe das Verhalten nicht hier getestet, aber in der Wikipedia steht ja warum es "möglich" ist.

MfG
Fabian

p80286 2. Aug 2010 14:23

AW: Division durch Null mit unterschiedlichen Ergebnissen
 
Zitat:

Zitat von OrNEC (Beitrag 1038975)
Division durch Null???

Seit wann ist denn das möglich? :shock:

zum einen ist es wohl möglich (wenn meine historischen Mathe-Kenntnisse mich nicht täuschen). Ob es/sie sinnvoll ist steht auf einem anderen Blatt,
und wenn ich mich nicht irre ging es darum einen Fehler zu provozieren, und das sollte man damit hinbekommen.

Gruß
K-H

Medium 2. Aug 2010 14:36

AW: Division durch Null mit unterschiedlichen Ergebnissen
 
Es ist, allgemein, nicht möglich. Es ist aber in manchen Fällen möglich der Operation ein Ergebnis anzudichten, welches in dem Zusammenhang sinnvoll ist - egal ob nun mathematisch oder systematisch. X/0 hat praktisch kein "natürliches" Ergebnis, sondern nur ein "definiertes" - wenn man es explizit so angibt, was bei der x87 FPU möglich ist.

Noch spannender ist das bei 0/0 :)

messie 2. Aug 2010 15:49

AW: Division durch Null mit unterschiedlichen Ergebnissen
 
Zitat:

Zitat von Medium (Beitrag 1039008)
Noch spannender ist das bei 0/0 :)

Das Ergebnis gab einmal INF und einmal NAN.

Habe auch einen Verdächtigen ausgemacht: TeeChart Pro benutzt OpenGL für bestimmte Funktionen. Da ist der Befehl Set8087CW jedenfalls drin.

Grüße, Messie


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz