免責聲明

Disclaimer (免責聲明)
繼續閱覽代表您接受以上的免責聲明.
To continue reading means you accept the above disclaimer.

2012年9月26日 星期三

C 與 PI

PI , π, 3.141592..., 
山巔一寺一壺酒, 爾... 

在C語言裡 如何得到 PI的值? 
如果是用微軟的Visaul Studio (VC) 

  • #include <math.h>
  • 在compiler 的preproecessor 定義中加入  _USE_MATH_DEFINES

//=== adhoc approaches
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif


const double pi = 22.0 / 7 ;  (不夠準)
const double pi = 355.0 / 113;  (比22/7 好些)
const double pi = acos(-1);
const double pi = 4.0 * atan(1.0);


3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491...

//=== linux
grep -i pi /usr/include/math.h 

# define M_PI 3.14159265358979323846 /* pi */
# define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
# define M_PIl 3.1415926535897932384626433832795029L  /* pi */


//=== 精準度(有效位數?)
#include <stdio.h>
#include <float.h>
double 的精準度 DBL_DIG
float 的精準度 FLT_DIG

long double ?



[ref] 




沒有留言:

張貼留言