1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:01,830 >> DAVID MALAN: Więc jak można możemy rozwiązać ten problem? 3 00:00:01,830 --> 00:00:05,310 Cóż, najprostszym sposobem jest po prostu, aby uniknąć ogóle, a zamiast ints zdefiniować 4 00:00:05,310 --> 00:00:06,960 jeden pływak przez pływaka. 5 00:00:06,960 --> 00:00:12,460 Konkretnie, zmieńmy 1 do 1,0 i od 10 do 10,0, a następnie zapisać ten 6 00:00:12,460 --> 00:00:14,380 jak plik floats1.c. 7 00:00:14,380 --> 00:00:20,270 Załóżmy teraz skompilować go z make floats1, a następnie uruchomić go z floats1. 8 00:00:20,270 --> 00:00:22,590 I teraz, w rzeczywistości zobaczyć 0.1. 9 00:00:22,590 --> 00:00:25,540 >> Jest inny sposób możemy rozwiązać to, i to za pomocą odlewania. 10 00:00:25,540 --> 00:00:29,750 Odlew jest proces przetwarzania jednego Typ danych do drugiego, przy założeniu, że 11 00:00:29,750 --> 00:00:31,130 sens to robić. 12 00:00:31,130 --> 00:00:34,370 W tym przypadku, co mogłem zrobić, to wrócić do wersji kodu, gdzie jestem 13 00:00:34,370 --> 00:00:40,050 dzieląc jeden w int przez 10 w int, ale Mogę wyraźnie poinformować kompilator 14 00:00:40,050 --> 00:00:43,990 że chcę traktować 1, jakby to unosić się, nawet jeśli jest to int, i 15 00:00:43,990 --> 00:00:48,270 Chciałbym traktować 10 jako pływaka, mimo, że też jest int. 16 00:00:48,270 --> 00:00:51,760 >> W rzeczywistości, nie mogłem uciec z tylko rzucając jeden z nich do pływaka, 17 00:00:51,760 --> 00:00:55,350 bo jeśli podzielić przez pływak int lub int przez float, C będzie 18 00:00:55,350 --> 00:00:57,550 powrót do ciebie wartość zmiennoprzecinkową. 19 00:00:57,550 --> 00:01:01,150 Ale w tym przypadku, na dokładkę, będę konwertować zarówno pływaków, rekompilacji 20 00:01:01,150 --> 00:01:06,380 mój program z make floats1, następnie uruchom go z dot slash floats1, 21 00:01:06,380 --> 00:01:08,770 i widzę też 0,1. 22 00:01:08,770 --> 00:01:10,983