取り扱える数の範囲や精度は,指数部と仮数部の桁数によって決まります。このしくみは自由に伸び縮みさせることができる伸縮性の物差しに例えることができます。便利なのですが,コンピュータの物差しは目盛りに無い数値は取り扱うことができません。数値が目盛りと目盛りの間に存在する場合は,何らかの約束事に従って,どちらかの目盛りを読み取ります。このようにして読み取った値は近似値といい,真の値との間に誤差があります。コンピュータで計算を行う人は,このことをよく知っておきましょう。コンピュータは万能ではありません。便利な機械ですが,より大きな利便を得るためにちょっとした妥協をしています。時によってはこの妥協が大きな計算違いを生むことがあるのです。プロとしてコンピュータを用いるならば,この妥協による誤差がどんなもので,どの程度の誤差を発生するのかを必要とあらば把握できなければなりません。コンピュータの数値の取り扱い方法のしくみを知り,誤差を把握することは,ちょうど大工さんが自分の道具に精通するのと似ています。これから数回にわたって,コンピュータで実数値を取り扱うときに生じるエラーや誤差について学びます。将来本格的な数値計算を行う場合に役立つ知識です。コンピュータで数学的な問題を取り扱うことに興味を持たれている読者の皆さんは,このチャンスに浮動小数点数の弱点をしっかりと知りましょう。浮動小数点数の仕組み上,避けられないエラーや誤差には以下に挙げるものがあります。今回はこれらのうち「オーバーフロー/アンダーフロー」と「桁落ち」を学習しましょう。オーバーフロー/アンダーフローオーバーフロー/アンダーフローとは,算術演算の結果,絶対値が表現可能な範囲を超えることを意味します。オーバーフローが発生すると,Java言語の実数型では無限大(Infinity)と表現されます。アンダーフローが発生すると,Java言語の実数型では0として取り扱います。Java言語ではどちらの場合もエラーとしては取り扱いません。具体的にはIEEE754単精度(float型)の場合(※1⁠)⁠,指数部が最大値の254を超えた場合がオーバーフローになります。float型は指数部255,符号部,仮数部ともに0で正の無限大を表します。符号部が1の場合は負の無限大です。指数部が最小値の0を下回る場合はアンダーフローです。その実数型の値は単に0になります。オーバーフローもアンダーフローも,真の値は無限大やゼロではないにもかかわらず計算に支障が出る状況です。ものの寸法や個数などを扱う場合に,float型やdouble型の最大値は十分大きいように思われますが,各種計算式の途中で大変大きな数を生じる関数を用いている場合などはオーバーフローに注意が必要です。大きな数値の逆数が生じる場合も,その値がアンダーフローするとゼロ扱いになってしまいます。科学技術計算を行うプログラムを書く場合には,当然のことですが想定できる範囲のテストデータを用いて,計算途中の値をチェックしましょう。※1整数値計算のオーバーフロー/アンダーフローは考え方が異なります。Java言語のbyte整数型なら,オーバーフローは127を超えた場合です。アンダーフローは-128を下回った場合です。プログラミングと日本の端っこ踏破旅行。2010年のLotYはRuby。結城浩氏のような仕事をしたいと妄想する30代後半♂。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。