1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:02,700 >> COLUMNA 1: Supoñamos que me gustaría escribir un programa que imprime un float, 3 00:00:02,700 --> 00:00:05,700 especialmente o resultado de dividir o 1 por 10. 4 00:00:05,700 --> 00:00:08,830 Ben, o meu primeiro instinto sería escribir este programa como segue. 5 00:00:08,830 --> 00:00:18,160 Flotador f é igual a 1 dividido por 10, e, a continuación, imprimir f de 0,1 por cento f, así 6 00:00:18,160 --> 00:00:22,270 o que significa que eu quere imprimir unha boia cunha casa decimal, 7 00:00:22,270 --> 00:00:26,490 barra invertida n coma f. 8 00:00:26,490 --> 00:00:28,270 Imos agora compilar este programa. 9 00:00:28,270 --> 00:00:32,980 Facer flutuar 0 punto barra flotante 0. 10 00:00:32,980 --> 00:00:34,140 >> Ben, iso non é certo. 11 00:00:34,140 --> 00:00:40,210 Estou seguro de que 1 dividido por 10, ou 1/10 non é 0.0, pero 0.1, e aínda así 12 00:00:40,210 --> 00:00:42,820 aquí estou a ver na pantalla 0.0. 13 00:00:42,820 --> 00:00:43,860 O que está a suceder? 14 00:00:43,860 --> 00:00:47,790 Ben, acontece que en c, se dividir un int por un int, 15 00:00:47,790 --> 00:00:49,090 recibe de volta un int. 16 00:00:49,090 --> 00:00:54,810 E por iso mesmo que 1 dividido por 10 é en realidade, 0,10, 0,1 non pode caber nun int, 17 00:00:54,810 --> 00:00:58,930 e así o que c non é el trunca, ou xoga fóra todo tras o 18 00:00:58,930 --> 00:01:01,770 casa decimal, deixando así nós con só 0. 19 00:01:01,770 --> 00:01:04,989 >> Pero entón, por suposto, con impresión f, temos especificar que queremos imprimir para f 20 00:01:04,989 --> 00:01:09,260 unha casa decimal, e así que 0 preséntase como 0,0. 21 00:01:09,260 --> 00:01:11,540 Así, claramente este é un problema que necesita unha solución. 22 00:01:11,540 --> 00:01:14,025