Falscher Double Wert
-
Hallo Leute,
ich habe folgendes Problem mit 2 double Zahlen
double var1 = 8.6619572180272524;
double var2 = 8.1757989156437073;Wenn ich mir die Zahlen im Debuger anschaue wird mir var1 korrekt angezeigt bei var2 wird jedoch die letzte Stelle zu einer Null 8.1757989156437070
Bitte um Hilfe.
Viele Grüße,
Andreas
-
Ja, das ist bei double halt so.
-
vgl.: https://de.wikipedia.org/wiki/Doppelte_Genauigkeit
Du kannst long double probieren.
http://www.cplusplus.com/forum/beginner/34088/#include <cmath> #include <iostream> using namespace std; int main() { long double PI1 = acosl(-1.0L); double PI2 = acosl(-1.0); cout.precision(50); cout << "PI = " << PI1 << endl; cout << "PI = " << PI2 << endl; }
-
long double ist leider das gleiche wie double bei vs2013
https://msdn.microsoft.com/en-us/library/s3f49ktz(v=vs.120).aspx
-
Ja. Das ist leider so, auch noch bei VS 2015.
"long double is guaranteed only to provide no less precision than double (i.e. it would be correct of your compiler used a long double type of the same precision as double)"
Bei Code::Blocks mit GCC ist es noch unterschiedlich:
`PI = 3.1415926535897932385128089594061862044327426701784
PI = 3.141592653589793115997963468544185161590576171875`
http://info.prelert.com/blog/the-pitfalls-of-long-double <== lesenswert
Thema bitte nach C++ verschieben.
-
Danke das hat mir schon mal geholfen.