1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:01,830 >> DAVID MALAN: Så hvordan kan vi løse dette problem? 3 00:00:01,830 --> 00:00:05,310 Nå, den nemmeste måde er bare at undgå int'er helt, og i stedet definere 4 00:00:05,310 --> 00:00:06,960 en float med en float. 5 00:00:06,960 --> 00:00:12,460 Specifikt, lad os ændre 1-1,0 og 10 til 10,0, og derefter gemme denne 6 00:00:12,460 --> 00:00:14,380 fil som floats1.c. 7 00:00:14,380 --> 00:00:20,270 Lad os nu kompilere det med make floats1, og derefter køre den med floats1. 8 00:00:20,270 --> 00:00:22,590 Og nu, jeg virkelig se 0.1. 9 00:00:22,590 --> 00:00:25,540 >> Der er en anden måde, vi kunne løse det, og det er ved hjælp af støbning. 10 00:00:25,540 --> 00:00:29,750 Støbning er processen med at konvertere en datatype til en anden, forudsat det 11 00:00:29,750 --> 00:00:31,130 giver mening at gøre det. 12 00:00:31,130 --> 00:00:34,370 I dette tilfælde, hvad jeg kunne gøre, er at gå tilbage til den version af koden, hvor jeg 13 00:00:34,370 --> 00:00:40,050 dividere en i int med 10 i int, men Jeg kunne eksplicit at fortælle oversætteren 14 00:00:40,050 --> 00:00:43,990 at jeg ønsker at behandle 1, som om det er en flyde, selvom det er en int, og 15 00:00:43,990 --> 00:00:48,270 Jeg vil gerne behandle 10 som en float, selvom det også er en int. 16 00:00:48,270 --> 00:00:51,760 >> I virkeligheden kunne jeg slippe afsted med blot støbning en af ​​disse til en float, 17 00:00:51,760 --> 00:00:55,350 fordi hvis du opdeler en float med en int, eller en int med en float, C vil 18 00:00:55,350 --> 00:00:57,550 vende tilbage til dig en floating point-værdi. 19 00:00:57,550 --> 00:01:01,150 Men i dette tilfælde, for god foranstaltning, vil jeg konvertere både flåd, rekompilere 20 00:01:01,150 --> 00:01:06,380 mit program med make floats1, så køre det med dot skråstreg floats1, 21 00:01:06,380 --> 00:01:08,770 og jeg ser også 0.1. 22 00:01:08,770 --> 00:01:10,983