1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:01,830 >> DAVID Malan: Entón, como pode imos solucionar este problema? 3 00:00:01,830 --> 00:00:05,310 Ben, o xeito máis doado é para evitar Ints por completo, e no seu lugar definir 4 00:00:05,310 --> 00:00:06,960 unha boia por unha boia. 5 00:00:06,960 --> 00:00:12,460 En concreto, imos cambiar 1-1,0 e de 10 a 10.0, e despois gardar este 6 00:00:12,460 --> 00:00:14,380 ficheiro como floats1.c. 7 00:00:14,380 --> 00:00:20,270 Imos agora compilar con make floats1, e logo, executa-lo con floats1. 8 00:00:20,270 --> 00:00:22,590 E agora, realmente ver 0.1. 9 00:00:22,590 --> 00:00:25,540 >> Hai outra forma que poderiamos resolver , E que está a usar casting. 10 00:00:25,540 --> 00:00:29,750 A conversión é o proceso de conversión de un Tipo de datos a outro, supoñendo que 11 00:00:29,750 --> 00:00:31,130 ten sentido facelo. 12 00:00:31,130 --> 00:00:34,370 Neste caso, o que eu podería facer é volver para a versión de código onde estou 13 00:00:34,370 --> 00:00:40,050 dividindo un en int por 10 en int, pero Podería dicir explicitamente o compilador 14 00:00:40,050 --> 00:00:43,990 que quero tratar un como se fose un flotar, aínda que sexa un int, e 15 00:00:43,990 --> 00:00:48,270 Gustaríame tratar 10 como un float, aínda que, tamén, é un int. 16 00:00:48,270 --> 00:00:51,760 >> En realidade, eu podería fuxir con só lanzando un destes a un float, 17 00:00:51,760 --> 00:00:55,350 porque se dividir un coche alegórico por un int, ou un int por un float, C será 18 00:00:55,350 --> 00:00:57,550 voltar a vostede un valor de punto flotante. 19 00:00:57,550 --> 00:01:01,150 Pero, neste caso, para unha boa medida, vou converter tanto para coches alegóricos, recompilar 20 00:01:01,150 --> 00:01:06,380 meu programa co make floats1, entón executa-lo con un punto floats1 barra, 21 00:01:06,380 --> 00:01:08,770 e eu tamén ver 0.1. 22 00:01:08,770 --> 00:01:10,983