コンピュータの計算精度
コンピュータはいいかげんである
コンピュータは計算を速く正確に行う機械だというイメージがありますが、
実は不正確な計算しかできません。
特に大きな数値や小さな数値の計算には注意が必要です。
計算例
以下の例では
C 言語で作成したプログラムによって
計算結果を小数点以下 10 桁まで表示しています。
-  0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 = 1.0000001192
	
- 0.1 を 10 回加算した結果
-  0.01 + 0.01 + ... = 0.9999993443
	
- 0.01 を 100 回加算した結果
-  0.001 + 0.001 + ... = 0.9999907017
	
- 0.001 を 1000 回加算した結果
-  0.0001 + 0.0001 + ... = 1.0000535250
	
- 0.0001 を 10000 回加算した結果
-  0.00001 + 0.00001 + ... = 1.0009901524
	
- 0.00001 を 100000 回加算した結果
-  1.0 / 3.0 = 0.3333333433
	
- 1.0 を 3.0 で割り算した結果
コンピュータが扱える数の範囲は決まっています。
その範囲を超える計算をしようとすると結果がおかしくなります。
現在、よく使われているパソコンで使用できる整数の範囲は
-2147483648 から 2147483647
までなので、以下のような計算結果が出てしまいます。
-  2147483647 + 1 = -2147483648
	
- 計算結果がいきなりマイナスになります。
-  -2147483648 - 1 = 2147483647
	
- 逆に計算結果がプラスになってしまいます。
参考
Prev | Next
Home | Contents
Mail