「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

丸め誤差

pointこの用語のポイント

point数字の誤差だよ

point桁の省略によって生じるよ

point切り上げ・切り捨て・四捨五入などで生じるよ

スポンサーリンク

簡単に書くよ

丸め誤差(読:マルメゴサ 英:roundoff error)とは

例えば「10.31」を「10.3」として扱うことにしたときの「0.01」のように、切り上げなり切り捨てなり四捨五入なりして「ここから先の桁は見ないことにするね」としたのが原因で生じる誤差のこと
です。


image piyo

詳しく書くよ

サクっと一言で説明すると

数字の(小数点以下の)桁を省略したときに生じる、本来の値とのズレ

が「丸め誤差」です。

丸め誤差

みなさんが一番イメージしやすいのは円周率ですかね。
本来、円周率は「3.1415926535..」と続いていきます。
ですが実際には「3.14」くらいで計算するのが一般的です。

丸め誤差2

そうすると切り捨てた「0.0015926535..」の分だけ本来の計算結果とズレますよね。
このズレが丸め誤差です。

丸め誤差3

丸め誤差は切り上げ・切り捨て・四捨五入などで発生します。
※この3つで生じる場合がほとんどだとは思いますが、五捨六入とか八捨九入とかした場合も丸め誤差に該当すると思うので「など」としておきます。

例えば「10.38」の小数点以下2桁目を切り捨てて「10.3」とした場合の丸め誤差は「0.08」です。
もし「×2」する計算をしたとしたら「20.76(=10.38×2)」と「20.6(=10.3×2)」の差である「0.16」が丸め誤差になります。

丸め誤差4

「10.38」の小数点以下2桁目を四捨五入して「10.4」とした場合の丸め誤差は「0.02(-0.02?)」です。
もし「×2」する計算をしたとしたら「20.76(=10.38×2)」と「20.8(=10.4×2)」の差である「0.04(-0.04?)」が丸め誤差になります。

丸め誤差5

「10.31」の小数点以下2桁目を切り上げて「10.4」とした場合の丸め誤差は「0.09(-0.09?)」です。
もし「×2」する計算をしたとしたら「20.62(=10.31×2)」と「20.8(=10.4×2)」の差である「0.18(-0.18?)」が丸め誤差になります。

丸め誤差6

このような

桁を省略したことによって生じる、本来の値とのズレ

が丸め誤差です。

ちなみに、個人的には整数で生じた誤差も「丸め誤差」と呼べると思っています。
例えば「128」を「100」として扱う場合は「28」の丸め誤差が発生するという解釈です。
本来1の位まであった数字を100の位までの数字として(1の位と10の位を省略して)扱ったことによって生じる誤差ですよね?

丸め誤差7

丸め誤差の話が出てくるのは小数の話が大部分ですけどね。
気が向いたら、頭の片隅にでも置いておいてあげてください。

あと、コンピュータさんの世界では丸め誤差が現実世界より少しだけ身近にあります。
コンピュータさんの世界は2進数(「2」になると桁上がりする数字)の世界だからです。
10進数(「10」になると桁上がりする数字)の小数を2進数の小数として扱うのは、めんどっちーのです。

例えば、そうですね。

10進数の「0.75」を2進数に変換すると「0.11」になります。

丸め誤差8

もしコンピュータさんがポンコツで小数点以下1桁までしか扱えなかったら、どうなると思いますか?
小数点以下1桁しか扱えないコンピュータさんは「0.11」を「0.1」として扱います。
小数点以下2桁目に気付けないからです。

丸め誤差9

2進数の「0.1」を10進数に変換すると「0.5」になります。

丸め誤差10

おやおや「0.75」が「0.5」になってしまいましたよ。
「0.25(=0.75-0.5)」がどこかに行ってしまいました。

丸め誤差11

かなり単純化して説明しましたが、10進数の小数を2進数に変換すると、すこーーーーしだけ誤差が出たりします。
そのため、たまに意図しない形で丸め誤差の影響を受ける場合があります。
ご注意ください。


image piyo2

一言でまとめるよ

まぁ「丸め誤差」って単語が出てきたら「(小数点以下の)桁を省略したときに生じる誤差なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像015
書籍画像058

おまけ



書籍画像
わわわ説明術コラム
宣伝だよ
つくって、壊して、直して学ぶ Kubernetes入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
ソフトウェア開発現場の「失敗」集めてみた。 42の失敗事例で学ぶチーム開発のうまい進めかた