1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:02,700 >> LUIDSPREKER 1: Stel dat ik zou willen schrijven een programma dat drukt een float, 3 00:00:02,700 --> 00:00:05,700 specifiek resultaat verdelen 1 10. 4 00:00:05,700 --> 00:00:08,830 Nou, mijn eerste instinct zou zijn om dit programma te schrijven als volgt. 5 00:00:08,830 --> 00:00:18,160 Float f gelijk aan 1 gedeeld door 10, en vervolgens drukken f van 0,1 procent f, waardoor 6 00:00:18,160 --> 00:00:22,270 betekent dat ik zou willen afdrukken een vlotter met een decimaal, 7 00:00:22,270 --> 00:00:26,490 backslash n komma f. 8 00:00:26,490 --> 00:00:28,270 Laten we nu dit programma samen te stellen. 9 00:00:28,270 --> 00:00:32,980 Maak vlotter 0 dot slash vlotter 0. 10 00:00:32,980 --> 00:00:34,140 >> Nou, dat is niet helemaal juist. 11 00:00:34,140 --> 00:00:40,210 Ik ben er vrij zeker van dat 1 gedeeld door 10, of 1/10 is niet 0,0, maar 0,1 en toch 12 00:00:40,210 --> 00:00:42,820 hier Ik zie op het scherm 0.0. 13 00:00:42,820 --> 00:00:43,860 Wat gebeurt er? 14 00:00:43,860 --> 00:00:47,790 Nou, het blijkt dat in c, indien u een int delen door een int, 15 00:00:47,790 --> 00:00:49,090 krijg je een int terug. 16 00:00:49,090 --> 00:00:54,810 En dus zelfs al 1 gedeeld door 10 is inderdaad 0.10, kan 0.1 passen niet in een int, 17 00:00:54,810 --> 00:00:58,930 en dus wat c doet is het kapt, of gooit alles weg na de 18 00:00:58,930 --> 00:01:01,770 decimaal, waardoor het verlaten ons met slechts 0. 19 00:01:01,770 --> 00:01:04,989 >> Maar dan, natuurlijk, met print f, we aangeven dat we willen afdrukken f om 20 00:01:04,989 --> 00:01:09,260 een decimaal, en zodat 0 wordt weergegeven als 0.0. 21 00:01:09,260 --> 00:01:11,540 Nou, dit is natuurlijk een probleem die moet een oplossing. 22 00:01:11,540 --> 00:01:14,025