Manchmal habe ich eine Nan als Ergebnis der Multiplikation von no-nan b und c:
%Vor%oder als Ergebnis von floor ():
%Vor%Doppelte Berechnung und Verwendung von sleep () verhindern dieses Problem:
%Vor%CPU ist ein AMD Athlon (tm) 64 X2 Dual Core Prozessor 3400 +
CPU-Temperatur :
%Vor%Kann dieses Problem auf CPU-Timing-Funktionen zurückzuführen sein? Oder gibt es andere Ursachen für das Problem?
AKTUALISIEREN
Ich habe herausgefunden, dass das folgende Programm nan auf dieser Maschine produziert:
%Vor%Gibt es eine Möglichkeit, dass ein Stack oder Speicher überschrieben wird, der an einer anderen Stelle im Programm auftritt - schlechte Thread-Handhabung oder schlecht gehandhabter Mutex? Das Hinzufügen eines Schlafs, um das Problem zu "beheben", lässt mich glauben, dass es sich um ein Nebenläufigkeitsproblem handeln könnte. Wenn möglich, debugge die Werte und sieh, ob sie sich im laufenden Betrieb von anderen Stellen mit einem Schreib-zu-Speicher-Unterbrechungspunkt oder vielleicht nur ein paar printfs ändern (was das Timing des Problems ändern und es ebenfalls verbergen kann).