1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:02,700 >> HÖGTALARE 1: Anta att jag skulle vilja skriva ett program som skriver ut en flottör, 3 00:00:02,700 --> 00:00:05,700 specifikt resultatet att dela en av 10. 4 00:00:05,700 --> 00:00:08,830 Tja, skulle min första instinkt vara att skriver det här programmet som följer. 5 00:00:08,830 --> 00:00:18,160 Float f är lika med 1 dividerat med 10, och sedan ut f av procent .1 f, därigenom 6 00:00:18,160 --> 00:00:22,270 vilket innebär att jag vill skriva ut en flottör med en decimal, 7 00:00:22,270 --> 00:00:26,490 snedstreck n kommatecken f. 8 00:00:26,490 --> 00:00:28,270 Låt oss nu kompilera programmet. 9 00:00:28,270 --> 00:00:32,980 Gör float 0 dot snedstreck float 0. 10 00:00:32,980 --> 00:00:34,140 >> Tja, det är inte helt rätt. 11 00:00:34,140 --> 00:00:40,210 Jag är ganska säker på att 1 dividerat med 10, eller 1/10 är inte 0,0 utan 0,1, och ändå 12 00:00:40,210 --> 00:00:42,820 här jag ser på skärmen 0,0. 13 00:00:42,820 --> 00:00:43,860 Vad är det som händer? 14 00:00:43,860 --> 00:00:47,790 Tja, visar det sig att i C, om du delar en int med en int, 15 00:00:47,790 --> 00:00:49,090 du får tillbaka en int. 16 00:00:49,090 --> 00:00:54,810 Och så även om 1 delat med 10 är ja 0,10, 0,1 inte får plats i en int, 17 00:00:54,810 --> 00:00:58,930 och så vad C gör det klipper, eller kastar bort allt efter 18 00:00:58,930 --> 00:01:01,770 decimal, vilket lämnar oss med bara 0. 19 00:01:01,770 --> 00:01:04,989 >> Men då, naturligtvis, med tryck f, vi ange att vi vill skriva ut f till 20 00:01:04,989 --> 00:01:09,260 en decimal, och så att 0 visas som 0,0. 21 00:01:09,260 --> 00:01:11,540 Nåväl, detta är helt klart ett problem som kräver en lösning. 22 00:01:11,540 --> 00:01:14,025