続・円周率を求める

今度は、正多角形の周の長さから円周率を求めました。

半径1の円に内接する正n角形の一辺の長さlから、
正2*n角形の一辺の長さl'を求める式は、
l' = \sqrt{2-\sqrt{4-l^2}}
になる。(三平方の定理を駆使すれば出てきます)

で、これを使って正方形から求めていきます。
結果は以下
辺の数一辺の長さ円周率の計算値
41.4142135623730952.828427124746190
80.7653668647301803.061467458920719
160.3901806440322573.121445152258053
320.1960342806591213.136548490545940
640.0981353486548363.140331156954754
1280.0490824570458243.141277250932759
2560.0245430765714403.141513801144285
5120.0122717692983113.141572940367515
10240.0061359135259293.141587725275636
20480.0030679603725723.141591421514008
40960.0015339806374823.141592345563526
81920.0007669903751533.141592576625775
163840.0003834951946163.141592634298169
327680.0001917475982833.141592650272843
655360.0000958737991013.141592648934190
1310720.0000479369000883.141592684156058
2621440.0000239684494603.141592607672169
5242880.0000119842258873.141592910939673
10485760.0000059921106283.141591696683685
20971520.0000029960599463.141596553704820
お、計算が速いぞ。数字もいい感じで出て・・・・・・ないぞ。
65536角形のとき減ってる。またその次では実際の円周率超えてるし。

原因にはわりとすぐに気がついた。
上の一辺の長さを出す式に原因がある。
辺の数が増えるとlが小さくなり、
4に比べてlの2乗が小さくなりすぎてしまう。
ここでプログラミングで言うところの「桁落ち」が発生してしまったというわけだ。

計算方法を工夫しないと精度が上がらない。
うまくいくと思ったのにな。残念だ。
いい近似式を知っている方、ぜひお教えください。