C言語を用いて実験データ処理用のプログラムを作成する。いま、double型変数 a、b に2つの測定データが格納されている。a、b の値はともに有効桁数が7桁あり、それぞれ次の範囲内にあることがわかっている。
3 < a < 3.0001 2.9999 < b < 3
次の演算を行ったときに、もとのa、b と比べて演算結果の有効桁数が最も失われるものはどれか。
@ a + b
A a - b
B a * b
C a / b
D sqrt (a * a + b * b)
A
例えば a = 3.000001、b = 2.999999 として計算すると
@ a + b = 6.000000
A a - b = 0.000002
B a * b = 8.999999
C a / b = 1.000001
D sqrt (a * a + b * b) = 4.242641
A以外は有効桁数が7桁のままであるが、Aは有効桁が1桁となる。このように有効桁数が極端に失われることを桁落ちという。
V−6 | 目次 | V−8 |