今回取り上げるのは,計算機上で小数を扱う際に重要な問題となってくる『桁落ち』という現象である。本記事の内容はほとんど実装言語に依存しないことを断っておく。(実際の計算例ではC言語を用いている。) 結論から言えば,『桁落ち』とは「近接した値同士で引き算をすると結果の不確かさが極端に大きくなる」ということだ。かなり微妙な言い回しだが,ともかく「引き算には気をつけろ」といった意味だと今は思っておいていただきたい。 以下の本文で言うところの『足し算』および『引き算』とは「正の数同士」とで行われるものだけを指すものとする。「正の数と負の数の足し算」およびその逆は引き算と見なす。 小数と誤差 計算機上では普通は2進小数が使われるのだが,『桁落ち』は特に基数に依存する概念ではないので,我々にとって馴染み深い10進小数1で説明する。 有効数字と誤差 現代において我々は整数でない数を小数で表し,特に無限小数
![桁の落ちない話 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/56a2cc5c7b737a4c5cbe6fee120b22907aa2204b/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-1150d8b18a7c15795b701a55ae908f94.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTg0MCZoPTM4MCZ0eHQ2ND01cUdCNDRHdTZKQzk0NEdoNDRHcTQ0R0U2S214JnR4dC1jb2xvcj0lMjMzMzMmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTQmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWNlbnRlciUyQ21pZGRsZSZzPTg2MmJmYjYyNTNhNjY4N2ViZmQ3ZmJiNjdkMGQwNWNi%26mark-align%3Dcenter%252Cmiddle%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTg0MCZoPTUwMCZ0eHQ2ND1RR0Y2WVhCbGJqWSZ0eHQtY29sb3I9JTIzMzMzJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTQ1JnR4dC1hbGlnbj1yaWdodCUyQ2JvdHRvbSZzPTIwNDg1ZDdjYmU3ZWMzNmJkYzI3MDBiYzk5MWRlODg2%26blend-align%3Dcenter%252Cmiddle%26blend-mode%3Dnormal%26s%3D4b7a7da78013d720e687a731f078727e)