DAVID MALAN: Więc jak można możemy rozwiązać ten problem? Cóż, najprostszym sposobem jest po prostu, aby uniknąć ogóle, a zamiast ints zdefiniować jeden pływak przez pływaka. Konkretnie, zmieńmy 1 do 1,0 i od 10 do 10,0, a następnie zapisać ten jak plik floats1.c. Załóżmy teraz skompilować go z make floats1, a następnie uruchomić go z floats1. I teraz, w rzeczywistości zobaczyć 0.1. Jest inny sposób możemy rozwiązać to, i to za pomocą odlewania. Odlew jest proces przetwarzania jednego Typ danych do drugiego, przy założeniu, że sens to robić. W tym przypadku, co mogłem zrobić, to wrócić do wersji kodu, gdzie jestem dzieląc jeden w int przez 10 w int, ale Mogę wyraźnie poinformować kompilator że chcę traktować 1, jakby to unosić się, nawet jeśli jest to int, i Chciałbym traktować 10 jako pływaka, mimo, że też jest int. W rzeczywistości, nie mogłem uciec z tylko rzucając jeden z nich do pływaka, bo jeśli podzielić przez pływak int lub int przez float, C będzie powrót do ciebie wartość zmiennoprzecinkową. Ale w tym przypadku, na dokładkę, będę konwertować zarówno pływaków, rekompilacji mój program z make floats1, następnie uruchom go z dot slash floats1, i widzę też 0,1.