日常生活の中で、数字について深く考えているという人は稀でしょう。数字を使うとしても、せいぜい買い物の際の合計金額やお釣りを計算したりする程度ではないでしょうか。あるいは時間を気にしながら行動する際には、何時まではあと何分ある、といった目安として分を数字で意識することはあるかもしれません。しかし、そうした数字がコンピューターの中でどのように表わされ、扱われているか、といったことなど、まったく考えてみたことがないという人がほとんどではないでしょうか。
しかしプログラミングの世界に入るには、まず数字について考えを新たにすることが必要になります。特に、一般的な数学や、日常的な数字の感覚と、コンピューターの数字の扱いの違いを理解しておくことは重要です。
Swiftは壊れた電卓?
前回は、Playgroundsに数字や簡単な計算式、さらにSwiftの関数を打ち込んで、結果が表示されるのを確認しました。その中で、三角関数などに与える数字に小数点が含まれていないとエラーになってしまうことは示しました。その場合、はっきりとエラーを示す赤い丸印が表示されるのでまだいいのですが、いろいろ試しているうちに、エラーは出ないのに結果がおかしいことに気づいた人もいるのではないでしょうか。
例えば、「10/3」と入力すれば、電卓で計算してみるまでもなく、結果は「3.333333……」となることが期待されます。ところがSwiftが出してくる結果は単なる「3」なのです。
これは割り切れない数だからなのかと思い直して、割り切れるはずの「10/4」を計算させてみると、結果は「2.5」ではなく「2」なってしまいます。エラーが出ないだけに、こうした問題には気付きにくく、なおやっかいです。
この結果だけを見ると、Playgroundに対する信用は地に落ちたと思われるでしょう。電卓代わりに使えるどころではありません。もしこんな電卓があったら誰も買わない欠陥商品とみなされるでしょう。しかし、もちろんこれはSwiftにとってしごく正常な動作なのです。
この連載の記事
- 第100回 SceneKitの物理現象シミュレーションとアニメーションをARKitに持ち込む
- 第99回 「物理学体」と「物理学場」を設定して物理現象をシミュレーション
- 第98回 SceneKitのノードに動きを加えるプログラム
- 第97回 いろいろな形のノードをシーンの中に配置する
- 第96回 SceneKitの基礎シーンビュー、シーン、ノードを理解する
- 第95回 現実世界の床にボールや自動車のモデルを配置する
- 第94回 ARKitを使って非現実世界との融合に備える
- 第93回 ARKitが使えるiPadを識別するプログラム
- 第92回 Swift Playgrounds 2.1での問題点をまとめて解消する
- 第91回 iPadの内蔵カメラで撮影した写真を認識するプログラム
- この連載の一覧へ