1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:01,830 >> DAVID MALAN: Så hur kan vi lösa detta problem? 3 00:00:01,830 --> 00:00:05,310 Tja, är det enklaste sättet bara för att undvika ints helt och hållet, och istället definiera 4 00:00:05,310 --> 00:00:06,960 en flottör av en flottör. 5 00:00:06,960 --> 00:00:12,460 Specifikt, låt oss byta 1-1,0 och från 10 till 10,0, och sedan spara 6 00:00:12,460 --> 00:00:14,380 fil som floats1.c. 7 00:00:14,380 --> 00:00:20,270 Låt oss nu sammanställa det med make floats1, och sedan köra den med floats1. 8 00:00:20,270 --> 00:00:22,590 Och nu, jag verkligen se 0.1. 9 00:00:22,590 --> 00:00:25,540 >> Det finns ett annat sätt vi skulle kunna lösa det, och det är med hjälp av gjutning. 10 00:00:25,540 --> 00:00:29,750 Gjutning är ett sätt att omvandla en datatyp till en annan, förutsatt att det 11 00:00:29,750 --> 00:00:31,130 vettigt att göra så. 12 00:00:31,130 --> 00:00:34,370 I så fall, vad jag skulle kunna göra är att gå tillbaka till den version av koden där jag är 13 00:00:34,370 --> 00:00:40,050 dela en i int med 10 i int, men Jag kunde tydligt berätta kompilatorn 14 00:00:40,050 --> 00:00:43,990 att jag vill behandla en som om det är en flyta, även om det är en int, och 15 00:00:43,990 --> 00:00:48,270 Jag skulle vilja behandla 10 som ett flöte, även om det också är en int. 16 00:00:48,270 --> 00:00:51,760 >> I själva verket kunde jag komma undan med att bara gjutning en av dessa till en flottör, 17 00:00:51,760 --> 00:00:55,350 för om du delar en flottör av en int, eller int av en flottör, C kommer 18 00:00:55,350 --> 00:00:57,550 tillbaka till dig ett flyttal. 19 00:00:57,550 --> 00:01:01,150 Men i detta fall, för bra åtgärd, jag konvertera både flottar, kompilera 20 00:01:01,150 --> 00:01:06,380 mitt program med make floats1, då kör den med punkt snedstreck floats1, 21 00:01:06,380 --> 00:01:08,770 och jag ser även 0.1. 22 00:01:08,770 --> 00:01:10,983