I eine Funktion getSlope haben, die 4 verdoppelt sich als Parameter verwendet, und gibt ein weiteres Doppel berechnet dieser gegebenen Parameter in der folgenden Art und Weise verwendet:unerwartete Verlust an Präzision bei der Doppel-Dividieren
double QSweep::getSlope(double a, double b, double c, double d){
double slope;
slope=(d-b)/(c-a);
return slope;
}
Das Problem ist, dass, wenn diese Funktion aufrufen mit Argumenten zum Beispiel:
getSlope(2.71156, -1.64161, 2.70413, -1.72219);
das zurückgegebene Ergebnis ist:
10.8557
und das ist kein gutes Ergebnis für meine Berechnungen. Ich habe die Steigung mit Mathematica und das Ergebnis für die Steigung für die gleichen Parameter berechnet wird:
10.8452
oder mit mehr Stellen für Präzision:
10.845222072678331.
Das Ergebnis wird durch mein Programm zurückgegeben wird, ist nicht gut in meinen weiteren Berechnungen. Darüber hinaus verstehe ich nicht, wie das Programm 10.8557 ab 10.845222072678331 zurückgibt (angenommen, dass dies das ungefähre Ergebnis für die Division ist)? Wie bekomme ich das gute Ergebnis für meine Abteilung?
danken Ihnen im Voraus, madalina
ich das Ergebnis mit der Befehlszeile drucken:
std::cout<<slope<<endl;
Es kann sein, dass meine Parameter vielleicht nicht gut sind, wie ich sie las aus ein anderes Programm (das ein Diagramm berechnet; nachdem ich diese Parameter aus seinem Diagramm gelesen habe, habe ich sie nur angezeigt, um ihren Wert zu sehen, aber vielleicht haben die angezeigten Vektoren nicht die gleiche interne Genauigkeit für den berechneten Wert. Ich weiß nicht, dass es wirklich seltsam ist Einige numerische al Fehler erscheint ..)
Wenn der Graph, aus dem ich meine Parameter lese, berechnet wird, einige numerische Bibliotheken in C++ geschrieben (mit Vorlagen) verwendet werden. Für diese Berechnung wird kein OpenGL verwendet.
danke, madalina
Überprüfen Sie, wie die Methode in asm kompiliert wurde. Sie können das im Debugger tun, glaube ich (zumindest im Visual Studio). –
Meine Windows-Calc gibt so gute Ergebnisse wie Mathematica: D – klew
Welcher Compiler, welche Plattform? – peterchen