1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:02,700 >> COLUNA 1: Suponha que eu gostaria de escrever um programa que imprime um float, 3 00:00:02,700 --> 00:00:05,700 especificamente o resultado de dividir 1 por 10. 4 00:00:05,700 --> 00:00:08,830 Bem, meu primeiro instinto seria escrever este programa como segue. 5 00:00:08,830 --> 00:00:18,160 Flutuador f é igual a 1 dividido por 10, e, em seguida, imprimir f de 0,1 por cento f, assim 6 00:00:18,160 --> 00:00:22,270 o que significa que eu gostaria de imprimir uma bóia com uma casa decimal, 7 00:00:22,270 --> 00:00:26,490 barra invertida n vírgula f. 8 00:00:26,490 --> 00:00:28,270 Vamos agora compilar este programa. 9 00:00:28,270 --> 00:00:32,980 Fazer flutuar 0 ponto barra flutuante 0. 10 00:00:32,980 --> 00:00:34,140 >> Bem, isso não está certo. 11 00:00:34,140 --> 00:00:40,210 Tenho certeza de que 1 dividido por 10, ou 1/10 não é 0.0, mas 0.1, e ainda assim 12 00:00:40,210 --> 00:00:42,820 aqui eu estou vendo na tela 0.0. 13 00:00:42,820 --> 00:00:43,860 O que está acontecendo? 14 00:00:43,860 --> 00:00:47,790 Bem, acontece que em c, se você dividir um int por um int, 15 00:00:47,790 --> 00:00:49,090 você recebe de volta um int. 16 00:00:49,090 --> 00:00:54,810 E por isso mesmo que 1 dividido por 10 é na verdade, 0,10, 0,1 não pode caber em um int, 17 00:00:54,810 --> 00:00:58,930 e assim o que c não é ele trunca, ou joga fora tudo após o 18 00:00:58,930 --> 00:01:01,770 casa decimal, deixando assim nós com apenas 0. 19 00:01:01,770 --> 00:01:04,989 >> Mas então, é claro, com impressão f, temos especificar que gostaríamos de imprimir para f 20 00:01:04,989 --> 00:01:09,260 uma casa decimal, e assim que 0 é apresentado como 0,0. 21 00:01:09,260 --> 00:01:11,540 Bem, claramente este é um problema que necessita de uma solução. 22 00:01:11,540 --> 00:01:14,025