1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:01,830 >> DAVID MALAN: Então, como pode vamos resolver este problema? 3 00:00:01,830 --> 00:00:05,310 Bem, a maneira mais fácil é apenas para evitar ints por completo, e em vez disso definir 4 00:00:05,310 --> 00:00:06,960 uma bóia por uma bóia. 5 00:00:06,960 --> 00:00:12,460 Especificamente, vamos mudar 1-1,0 e de 10 a 10.0, e depois salvar este 6 00:00:12,460 --> 00:00:14,380 arquivo como floats1.c. 7 00:00:14,380 --> 00:00:20,270 Vamos agora compilar com make floats1, e, em seguida, executá-lo com floats1. 8 00:00:20,270 --> 00:00:22,590 E agora, eu realmente ver 0.1. 9 00:00:22,590 --> 00:00:25,540 >> Há uma outra maneira que nós poderíamos resolver , e que está usando casting. 10 00:00:25,540 --> 00:00:29,750 A conversão é o processo de conversão de um Tipo de dados para outro, supondo que ele 11 00:00:29,750 --> 00:00:31,130 faz sentido fazê-lo. 12 00:00:31,130 --> 00:00:34,370 Neste caso, o que eu poderia fazer é voltar para a versão de código onde eu estou 13 00:00:34,370 --> 00:00:40,050 dividindo um em int por 10 em int, mas Eu poderia dizer explicitamente o compilador 14 00:00:40,050 --> 00:00:43,990 que eu quero tratar um como se fosse um flutuar, mesmo que seja um int, e 15 00:00:43,990 --> 00:00:48,270 Eu gostaria de tratar 10 como um float, mesmo que ele, também, é um int. 16 00:00:48,270 --> 00:00:51,760 >> Na realidade, eu poderia fugir com apenas lançando um destes para um float, 17 00:00:51,760 --> 00:00:55,350 porque se você dividir um carro alegórico por um int, ou um int por um float, C será 18 00:00:55,350 --> 00:00:57,550 voltar para você um valor de ponto flutuante. 19 00:00:57,550 --> 00:01:01,150 Mas, neste caso, para uma boa medida, eu vou converter tanto para carros alegóricos, recompilar 20 00:01:01,150 --> 00:01:06,380 meu programa com o make floats1, então executá-lo com um ponto floats1 barra, 21 00:01:06,380 --> 00:01:08,770 e eu também ver 0.1. 22 00:01:08,770 --> 00:01:10,983