ホーム » スタッフ » 斉藤徹 » 倍精度で精度が足りない…

2016年11月
 12345
6789101112
13141516171819
20212223242526
27282930  

検索・リンク

倍精度で精度が足りない…

他の先生の卒研の学生から、「C言語のプログラムを書いているけど、 精度が足りないのでどうしたらいいか?」 という質問をうける。

double 型で計算をしているようなので、 計算アルゴリズムの問題かもしれない。 積分計算なら、台形法じゃなく「シンプソンの公式」を使うとか、 微分方程式を解くのなら、「オイラー法」とか 「ルンゲクッタ法」を使うとか…。 でも、この辺は、私は自信がないので、 物理系のシミュレーションの卒研をしている先生の方が 詳しいので、計算方法アドバイスしてもらうべき…

もう一つの対応という点では、もっと精度の いい型を使う方法。整数型演算が絡む場合であれば、 bignum というライブラリで…という方法もあるけど、 今回は double 型の計算。

ということで、long double 型を説明する。

#include <stdio.h>
#include <math.h>
int main() {
   long double x = 3.14159265358979323846264338327950288L ;
   printf( "%Lf\n" , x ) ;
   return 0 ;
}

3.14の後ろについている"L"が重要。 "l"でもいいけど、"1"と区別ができないので、大文字で書くべき。

システム

最新の投稿(電子情報)

アーカイブ

カテゴリー