【用語】丸め誤差とは/rounding error

数値演算と丸め誤差

コンピュータでは限られた桁数でデータを表現するため、表現しきれない数値が出てくることもあります。

このようなことから真の値と計算結果で出てくる数値に誤差が出てしまうことがあり、その誤差の一つが丸め誤差です。

以下、具体的に説明します。

丸め誤差とは

指定された有効桁数で演算結果を表すために「切り捨て」「切り上げ」「四捨五入」などで下位の桁を削除する処理を”丸める(または丸め処理)”といい、その処理の結果生じる誤差。

簡潔にいうと「切り捨てとか四捨五入すると結果が変わる」ことにより起こる誤差です。

例 3.141592を小数点第三位以下切り捨て = 3.14

(当たり前だけど・・)計算結果変わった!! 

上記のように3.14(円周率)がわかりやすいですが、切り捨てると真の値ではなくなります。
一見大したことないように見えますが、人間が故意的におこすものではなくコンピュータが表示桁数の制約などから勝手に切り捨て・四捨五入を行い発生する誤差なので問題です。
また、10進数から2進数への基数変換などを行うとかなり誤差が生じているケースもあります。その場合に丸め誤差が生じている計算結果を使って掛け算などの計算を続けていくと、情報落ち誤差や桁落ち誤差同様、誤差が蓄積しかなりの誤差が生じる場合もあります。
丸め誤差は「型の違いなどにより扱える桁数が違う」「基数変換」などのことから必然的に発生することもあり、完全に回避することは難しかったりします。
表現形式・計算の順番を工夫して誤差を減らすことが可能な場合もあるが、誤差を前提として考慮した計算などを行う場合もあります。

浮動小数点数floatはコンピュータの内部では2進数で表現されているため、10進数の小数と厳密に同じ値を表現できない。こ…

いつ必要になる?

プログラミングの場面で何度も出てくるようなものではないですが、扱う変数の型やそれを使った条件式などによってはわりと発生したりします。

よきせぬエラーの発生につながることもあるため、頭に入れておくといいと思います。

またIT系資格である基本情報技術者試験や応用情報技術者試験などでは試験内容に誤差の問題がそこそこでてくるため、受験する場合は数値の誤差は全般知っておくべきです。

基本情報技術者試験ドットコム

基礎用語の最新記事8件