pi?
-
Ich würds lieber zur compilezeit festlegen und nicht erst zur laufzeit ausrechnen zumal bei einigen headern manchmal M_PI definiert wird..
#ifndef M_PI #define M_PI 3.14159265358979323846 #endif
-
wenn ich mich recht entsinne wird M_PI in <cmath.h> definiert, kann mich aber auch irren.
ansonsten finde ich die version von windalf besser.
-
M_PI wird in <cmath> definiert.
mfg
v R
-
M_PI wird in <cmath> definiert.
ja aber unter windows in visualc++6 wird das teil glaub ich nicht includiert wenn du ein c-programm schreibst und dann die math.h includierst...Ja ich weiss das ist das c++-forum aber ich vermute mal an sowas wirds gelegen haben und in solchen fällen hilft dir halt ein #ifndef M_PI
-
@Windalf:
So macht man das in C++ nicht...Was braucht ihr so ein genaues PI?
Die paar Stellen 3,14159... kann man sich doch merken und mehr Genauigkeit braucht man doch echt niemals.MfG MAV
-
So macht man das in C++ nicht...
Ich schon...
-
Windalf schrieb:
M_PI wird in <cmath> definiert.
ja aber unter windows in visualc++6 wird das teil glaub ich nicht includiert wenn du ein c-programm schreibst und dann die math.h includierst...Ja, wenn es ein C-Programm ist, heisst es natuerlich <math.h>
mfg
v R
-
"To use these math constants, you have to define _USE_MATH_DEFINES in addition to #including math.h." (Quelle: MSDN)
Klingt nicht so, als wären die Standard. Und damit sind sie, streng genommen, keine in diesem Forum gültige Lösung :p Aber wenn man M_PI, falls vorhanden, umbedingt benutzen will, warum dann nicht so?
#ifdef M_PI const double pi = M_PI; #else const double pi = 3.141...; #endif
Dann hat man im #else-Fall kein neues #define eingeführt und kann sich auf seine saubere Schulter klopfen.
-
Ne, es ist auch kein Standard. Allerdings ist dies eine Konstante, bei der ich
dachte, dass sie mit so ziemlich jedem Compiler ausgeliefert wuerde. Das man,
um sie zu benutzen, ne extra Konstante definieren muss, haette ich nicht gedacht.Aber wie du sagtest, streng genommen ist es ne schlechte Loesung
mfg
v R
-
Nur so am Rande:
355 / 113 ist PI mit einem Fehler von (ca.) 2.6676418906242231236893288649633e-7
Reicht für die meisten Berechnungen. Ob's aber schneller ist - hängt vom Programm ab.Blackbird