1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:02,700 >> INTERLOCUTEUR 1: Supposons que je voudrais écrire un programme qui affiche un flotteur, 3 00:00:02,700 --> 00:00:05,700 spécifiquement la suite de la division de 1 par 10. 4 00:00:05,700 --> 00:00:08,830 Eh bien, mes premiers instincts seraient à écrire ce programme comme suit. 5 00:00:08,830 --> 00:00:18,160 Float f est égal à 1 divisé par 10, puis imprimer f de 0,1 pour cent f, ce qui 6 00:00:18,160 --> 00:00:22,270 ce qui signifie que je voudrais imprimer un flotteur à une décimale près, 7 00:00:22,270 --> 00:00:26,490 barre oblique inverse n virgule f. 8 00:00:26,490 --> 00:00:28,270 Compilons maintenant ce programme. 9 00:00:28,270 --> 00:00:32,980 Faire flotter 0 point barre flotteur 0. 10 00:00:32,980 --> 00:00:34,140 >> Eh bien, ce n'est pas tout à fait raison. 11 00:00:34,140 --> 00:00:40,210 Je suis sûr que 1 divisé par 10, ou 1/10 n'est pas 0,0, mais 0,1, et encore 12 00:00:40,210 --> 00:00:42,820 ici je vois sur l'écran 0.0. 13 00:00:42,820 --> 00:00:43,860 Qu'est-ce qui se passe? 14 00:00:43,860 --> 00:00:47,790 Eh bien, il s'avère que dans c, si vous divisez un int par un int, 15 00:00:47,790 --> 00:00:49,090 vous obtenez en retour un int. 16 00:00:49,090 --> 00:00:54,810 Et même si 1 divisé par 10 est en effet 0,10, 0,1 ne peut pas tenir dans un int, 17 00:00:54,810 --> 00:00:58,930 et si ce ne c est elle tronque, ou jette tout après la 18 00:00:58,930 --> 00:01:01,770 décimale, ce qui laisse nous avec seulement 0. 19 00:01:01,770 --> 00:01:04,989 >> Mais alors, bien sûr, avec impression f, nous Précisons que nous aimerions imprimer f pour 20 00:01:04,989 --> 00:01:09,260 une décimale, et que 0 est affiché par 0,0. 21 00:01:09,260 --> 00:01:11,540 Eh bien, il s'agit clairement d'un problème qui a besoin d'une solution. 22 00:01:11,540 --> 00:01:14,025