1 00:00:00,300 --> 00:00:06,670 ここでの問題はコンピュータが2進法と呼ばれる システムを使って数を表していることです 2 00:00:07,000 --> 00:00:11,110 このシステムでは4.35を 正確に表示することができないのです 3 00:00:11,300 --> 00:00:14,480 一般的な電卓と同じですね 4 00:00:14,650 --> 00:00:18,980 10を3で割ると3.3333… といった答えが得られます 5 00:00:19,490 --> 00:00:26,820 その答えに再び3をかけると 答えは9.999999… になります 6 00:00:27,200 --> 00:00:34,160 その理由はつまり10を3で割った数を 10進法で表示することはできないのです 7 00:00:34,640 --> 00:00:41,000 なぜこのようなエラーが起こるのかについて プログラマは詳細な理由を追及しません 8 00:00:41,500 --> 00:00:46,140 ただ何となく浮動小数点数は あいまいだという直感があるだけです 9 00:00:46,480 --> 00:00:51,650 このピンボケの写真と同様です 1個1個のピクセルがはっきりと分かりませんね 10 00:00:52,240 --> 00:00:57,750 434.999のような数字を得た場合には 解決しなくてはならない問題があるということです 11 00:00:58,100 --> 00:01:05,060 この例ではわずかなお金も失いたくなければ 整数を使ってペニーを計算することが解決法です 12 00:01:05,700 --> 00:01:12,470 これを整数になるように435ペニーとすれば 100×435で何も問題はありません 13 00:01:12,800 --> 00:01:18,140 Javaではさらに技術を必要とする 数に関する型が他にもあります 14 00:01:18,140 --> 00:01:21,780 ファクトシートを用意しましたので 読んでみてください 15 00:01:21,780 --> 00:01:24,840 そしてサラと一緒に いくつか練習問題をやってみましょう