1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:01,830 >> DAVID Malan: Dus hoe kan we dit probleem oplossen? 3 00:00:01,830 --> 00:00:05,310 Nou, de makkelijkste manier is gewoon om te voorkomen ints helemaal, en in plaats daarvan te definiƫren 4 00:00:05,310 --> 00:00:06,960 een vlotter door een vlotter. 5 00:00:06,960 --> 00:00:12,460 Specifiek, veranderen we 1-1,0 en 10-10,0, en dan is deze op te slaan 6 00:00:12,460 --> 00:00:14,380 bestand als floats1.c. 7 00:00:14,380 --> 00:00:20,270 Laten we nu compileren met make floats1, en voer het vervolgens met floats1. 8 00:00:20,270 --> 00:00:22,590 En nu, ik inderdaad zie 0.1. 9 00:00:22,590 --> 00:00:25,540 >> Er is nog een manier waarop we konden oplossen het, en dat is met behulp van gieten. 10 00:00:25,540 --> 00:00:29,750 Casting is het proces waarbij een gegevenstype ander, aangenomen dat 11 00:00:29,750 --> 00:00:31,130 zinvol te doen. 12 00:00:31,130 --> 00:00:34,370 In dit geval, wat ik kon doen is teruggaan de versie van de code waar ik ben 13 00:00:34,370 --> 00:00:40,050 verdelen in een int met 10 in int, maar Ik kon expliciet vertellen de compiler 14 00:00:40,050 --> 00:00:43,990 dat ik wil behandelen 1 alsof het een drijven, ook al is het een int, en 15 00:00:43,990 --> 00:00:48,270 Ik wil graag behandelen 10 als een float, hoewel het ook een int. 16 00:00:48,270 --> 00:00:51,760 >> In werkelijkheid kon ik wegkomen met alleen casting een van deze naar een float, 17 00:00:51,760 --> 00:00:55,350 want als je een float delen door een int of een int door een vlotter, C zal 18 00:00:55,350 --> 00:00:57,550 terug te keren naar een floating point waarde. 19 00:00:57,550 --> 00:01:01,150 Maar in dit geval, voor de goede orde, ik zal zetten zowel praalwagens, hercompileren 20 00:01:01,150 --> 00:01:06,380 mijn programma met make floats1, dan voer het uit met dot slash floats1, 21 00:01:06,380 --> 00:01:08,770 en ik zie ook 0.1. 22 00:01:08,770 --> 00:01:10,983