WEBVTT 00:00:00.300 --> 00:00:06.670 ここでの問題はコンピュータが2進法と呼ばれる システムを使って数を表していることです 00:00:07.000 --> 00:00:11.110 このシステムでは4.35を 正確に表示することができないのです 00:00:11.300 --> 00:00:14.480 一般的な電卓と同じですね 00:00:14.650 --> 00:00:18.980 10を3で割ると3.3333… といった答えが得られます 00:00:19.490 --> 00:00:26.820 その答えに再び3をかけると 答えは9.999999… になります 00:00:27.200 --> 00:00:34.160 その理由はつまり10を3で割った数を 10進法で表示することはできないのです 00:00:34.640 --> 00:00:41.000 なぜこのようなエラーが起こるのかについて プログラマは詳細な理由を追及しません 00:00:41.500 --> 00:00:46.140 ただ何となく浮動小数点数は あいまいだという直感があるだけです 00:00:46.480 --> 00:00:51.650 このピンボケの写真と同様です 1個1個のピクセルがはっきりと分かりませんね 00:00:52.240 --> 00:00:57.750 434.999のような数字を得た場合には 解決しなくてはならない問題があるということです 00:00:58.100 --> 00:01:05.060 この例ではわずかなお金も失いたくなければ 整数を使ってペニーを計算することが解決法です 00:01:05.700 --> 00:01:12.470 これを整数になるように435ペニーとすれば 100×435で何も問題はありません 00:01:12.800 --> 00:01:18.140 Javaではさらに技術を必要とする 数に関する型が他にもあります 00:01:18.140 --> 00:01:21.780 ファクトシートを用意しましたので 読んでみてください 00:01:21.780 --> 00:01:24.840 そしてサラと一緒に いくつか練習問題をやってみましょう