NaN - Fehler bei rekursiven Aufrufen

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
Iggels
Beiträge: 53
Registriert: 17.02.2006 21:30

NaN - Fehler bei rekursiven Aufrufen

Beitrag von Iggels »

NaN bzw. -1.#IND als Rückgabewert (double) ab einer gewissen Anzahl rekursiver Aufrufe + Addition:

Code: Alles auswählen

Procedure.d AddNumber(x.d=0,n=0)
  If n < 10
    y.d = 2.0
    Debug Str(n)+":    int: "+Str(y)+"     double:"+StrD(y)
    ProcedureReturn x+AddNumber(y,n+1) 
  EndIf 
EndProcedure 

y.d = AddNumber()
Debug "---"
Debug y
Debug Int(y)
------------------
Debugger-Ausgabe:
0: int: 2 double:2
1: int: 2 double:2
2: int: 2 double:2
3: int: 2 double:2
4: int: 2 double:2
5: int: 2 double:2
6: int: 2 double:2
7: int: 2 double:-1.#IND
8: int: 2 double:-1.#IND
9: int: 2 double:-1.#IND
---
NaN
0
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: NaN - Fehler bei rekursiven Aufrufen

Beitrag von NicTheQuick »

Also bei mir sieht das so aus:

Code: Alles auswählen

0:    int: 2     double:2
1:    int: 2     double:2
2:    int: 2     double:2
3:    int: 2     double:2
4:    int: 2     double:2
5:    int: 2     double:2
6:    int: 2     double:2
7:    int: 2     double:2
8:    int: -9223372036854775808     double:NaN
9:    int: -9223372036854775808     double:NaN
---
NaN
-9223372036854775808
Zugegeben auch nicht viel besser.

Ist jedenfalls schon bekannt: ProcedureReturn with Double only in 8 levels?
Bild
Antworten