Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Quadratqurzel von 0: Fehlermeldung im BCB6 (https://www.delphipraxis.net/70618-quadratqurzel-von-0-fehlermeldung-im-bcb6.html)

messie 1. Jun 2006 16:44


Quadratqurzel von 0: Fehlermeldung im BCB6
 
Hallo,

ich berechne die Quadratwurzel eines Ausdrucks, der Null werden kann, eigentlich unproblematisch. Im BCB6 bekomme ich dafür eine Fehlermeldung:
Code:
ShowMessage(FloatToStr(pow(0,1/2)));
Meldung lautet: pow:domain error, was ich als unzulässige Basis interpretiere.
In Delphi geht dieselbe Berechnung problemlos. Beiden liegt eine identische Pascal-Routine zugrunde

Woran mag denn das liegen?

Grüße, Messie

messie 1. Jun 2006 17:23

Re: Quadratqurzel von 0: Fehlermeldung im BCB6
 
Problem gelöst! BCB kann nicht eins durch zwei teilen wenn kein Punkt hinter der Zahl steht, deshalb ist der Ausdruck dann Null.
Besser ist
Code:
ShowMessage(FloatToStr(pow(0,1./2.)));
Mal geht es, mal nicht...

Grüße, Messie

Flocke 1. Jun 2006 20:53

Re: Quadratqurzel von 0: Fehlermeldung im BCB6
 
Zitat:

Zitat von messie
BCB kann nicht eins durch zwei teilen wenn kein Punkt hinter der Zahl steht, deshalb ist der Ausdruck dann Null.

BCB kann schon 1 durch 2 teilen, allerdings gibt es in C/C++ keine unterschiedlichen Operatoren für "/" und "div" - der Ergebnistyp von "x/y" ist der `größere´ Typ von x oder y. Daher kommt in C bei "1 / 2" dasselbe heraus als wenn du in Delphi "1 div 2" geschrieben hättest.

messie 1. Jun 2006 21:02

Re: Quadratqurzel von 0: Fehlermeldung im BCB6
 
Ja, aber warum geht es mal und mal nicht??? Ich hätte Verständnis für eine konsequente Umsetzung. Aber der Ausdruck wird immer korrekt berechnet, solange die Basis größer Null ist. Die hat aber eigentlich nix mit dem Exponenten zu tun um dessen Syntax wir hier diskutieren.

Grüße, Messie

Dax 1. Jun 2006 21:04

Re: Quadratqurzel von 0: Fehlermeldung im BCB6
 
Sqrt(-2) <- try this. Delphi/BCB hat nun mal keine komplexen Zahlen, nur Singles, Doubles und Extendeds.

Flocke 1. Jun 2006 21:05

Re: Quadratqurzel von 0: Fehlermeldung im BCB6
 
Zitat:

Zitat von messie
Ja, aber warum geht es mal und mal nicht??? Ich hätte Verständnis für eine konsequente Umsetzung. Aber der Ausdruck wird immer korrekt berechnet, solange die Basis größer Null ist. Die hat aber eigentlich nix mit dem Exponenten zu tun um dessen Syntax wir hier diskutieren.

Na ja - x^0 ist 1 für jedes x ungleich 0, aber 0^0 ist eben nicht definiert (-> Domain error = fehlerhafter Wertebereich eines Parameters).


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 Uhr.

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