Was bedeutet 1.#QNB

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
dibro
Beiträge: 143
Registriert: 11.03.2006 12:52
Computerausstattung: Win 10 64 bit
Wohnort: Solingen

Was bedeutet 1.#QNB

Beitrag von dibro »

Hi,
in meinen Stringgadgets werden manchmal Ausgaben wie 1.#QNB dargestellt.
Zugegeben, es handelt sich dabei um unzulässige Eingabewerte in anderen Gadgets.
Aber wo finde ich, was das bedeutet?
OnError reagiert auch nicht darauf.
In Doku, Hilfe und Forum zu 1.#QNB keine Fundstelle
Gruß aus Solingen, PB 6.0 Win 10 Pro
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Was bedeutet 1.#QNB

Beitrag von Kiffi »

> in meinen Stringgadgets werden manchmal Ausgaben wie 1.#QNB
> dargestellt.

und wer trägt diesen Wert in das StringGadget ein? PB?

http://www.home.agilent.com/agilent/faq ... &id=768821

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
dibro
Beiträge: 143
Registriert: 11.03.2006 12:52
Computerausstattung: Win 10 64 bit
Wohnort: Solingen

Beitrag von dibro »

das ist das Ergebnis einer Berechnung in einer Schleife.
Ich bin dem Fehler auf der Spur, wüsste nur gern, was diese Kürzel zu bedeuten haben, die offensichtlich während der Laufzeit erzeugt werden.
Hier die Debuggerausgabe der Variablen:
  • 0.0
    0.0
    79.84917449951172
    99.79228210449219
    159.00018310546875
    179.14256286621094
    232.26686096191406
    248.126708984375
    301.4580078125
    309.51821899414063
    369.00634765625
    363.35360717773437
    438.41998291015625
    406.2740478515625
    515.68072509765625
    430.17092895507812
    613.72430419921875
    414.23883056640625
    759.24359130859375
    307.97171020507812
    999.79278564453125
    -2.26464295387268
    1322.2110595703125
    -552.6807861328125
    1.#QNAN
    1.#QNAN
    1.#QNAN
    1.#QNAN
    1.#QNAN
    1.#QNAN
dieser Wert wird weiter verarbeitet und führt nach einer Berechnung dann zu 1.#QNB, was über SetGadgetText(#String_xx, StrF(Wert,0)) dann ausgegeben wird und natürlich unbrauchbar ist. Onerror merkt nix davon.
Gruß aus Solingen, PB 6.0 Win 10 Pro
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Die FPU liefert als Berechnungsergebnis einen Fehler (NaN = Not a Number). Vgl. IEEE 754: http://de.wikipedia.org/wiki/IEEE_754

Ich denke, der Cast verwandelt die Darstellung in 1.QNB.

Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

mit dem code der das berechnet könnte man vermutlich mehr anfangen, als mit den ergebnissen.
vielleicht kriegst du mit Double keine probleme, dann liegt es am wertebereich. NaN heißt not a number und ist das 'ergebnis' von mathematisch sinn- oder wert-losen berechnungen, wie zum beispiel division durch null, bzw ich glaub auch overflows ect.
es gibt verschiedene solcher sonder-ergebnisse ..hatte schonmal jemand probleme mit:
http://www.purebasic.fr/german/viewtopic.php?t=8969 (..aber das hilft dir auch nix)
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

1.#QNB ist (vielleicht) nur ein synonym für 1.#QNAN.
Mach doch mal folgendes:
Wenn dein Wert NaN ist, und auch wenn er NB ist, dann führe folgenden Code aus, wenn der Wert in wert.d gespeichert ist:

Code: Alles auswählen

wert.d = 123123.2

q.q = PeekQ(@wert)
Debug RSet(Bin(q), 32, "0")
Dann können wir den Bitstring des Werts mal interpretieren.
!UD2
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

das Q steht scheinbar für 'quiet', im gegensatz zum S für 'signalling'
karl's link hat geschrieben:Eine signalisierende NaN löst im Gegensatz zu einer stillen NaN eine Ausnahme (Trap) aus, wenn sie als Operand einer arithmetischen Operation auftritt
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
dibro
Beiträge: 143
Registriert: 11.03.2006 12:52
Computerausstattung: Win 10 64 bit
Wohnort: Solingen

Beitrag von dibro »

Danke, hat mir geholfen, vor allem Karl's Link zum Wiki.
Jetzt weiß ich, "was soll es bedeuten".
Mein Prob habe ich auch gelöst. Es war eine Regelschleife, in der ein Wert aus dem vorangegangenen Durchlauf verarbeitet wurde. Bei zu großer Steilheit der Ausgangsgröße fing die Schleife an zu Schwingen. Hab ich durch Mittelwertbildung behoben, bringt zudem ein genaueres Ergebnis.
Gruß aus Solingen, PB 6.0 Win 10 Pro
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

wüßte auch gerne mal was #QNB ist, hab nur andere erzeugen können

Code: Alles auswählen

Debug "---------------------------"

pos_inFinite.f = 1
For i=0 To 4
  Debug pos_inFinite
  pos_inFinite*9999999999999
Next
Debug "---------------------------"

neg_inFinite.f = -1
For i=0 To 4
  Debug neg_inFinite
  neg_inFinite*9999999999999
Next
Debug "---------------------------"

neg_inDefinite.f = Sqr(-16)
Debug neg_inDefinite
Debug "---------------------------"

qNaN.f= -neg_inDefinite
Debug qNaN
Debug "---------------------------"

f.f=1
Debug f/0
f=0
Debug f/0
f=-1
Debug f/0
hier gibt's die binären darstellungen, aber auch nicht zu #QNB
http://www.purebasic.fr/english/viewtop ... ght=#79932
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

dibro hat geschrieben:Bei zu großer Steilheit der Ausgangsgröße fing die Schleife an zu Schwingen.
Was bedeutet das..?
Also was 'Schwingen' bedeutet ist klar, aber wie soll eine Kurve oder ein Graph bei gleichem Algorhytmus anfangen plötzlich zu schwingen..?

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Antworten