1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:02,700 >> ALTAVEU 1: Suposem que m'agradaria escriure un programa que imprimeixi un flotador, 3 00:00:02,700 --> 00:00:05,700 específicament el resultat de dividir 1 per 10. 4 00:00:05,700 --> 00:00:08,830 Bé, el meu primer instint seria escriure aquest programa de la següent manera. 5 00:00:08,830 --> 00:00:18,160 Float f és igual a 1 dividit per 10, i després imprimir f de 0,1 per cent f, d'aquesta manera 6 00:00:18,160 --> 00:00:22,270 el que significa que m'agradaria imprimir un flotador amb un decimal, 7 00:00:22,270 --> 00:00:26,490 barra invertida n coma f. 8 00:00:26,490 --> 00:00:28,270 Ara anem a compilar aquest programa. 9 00:00:28,270 --> 00:00:32,980 Fer float 0 punts slash float 0. 10 00:00:32,980 --> 00:00:34,140 >> Bé, això no és del tot correcte. 11 00:00:34,140 --> 00:00:40,210 Estic bastant segur que 1 dividit per 10, o 1/10 no és 0.0, però 0.1, i no obstant això, 12 00:00:40,210 --> 00:00:42,820 aquí estic veient a la pantalla de 0,0. 13 00:00:42,820 --> 00:00:43,860 Què està passant? 14 00:00:43,860 --> 00:00:47,790 Bé, resulta que al c, si dividir un enter per un sencer, 15 00:00:47,790 --> 00:00:49,090 tornis 1 int. 16 00:00:49,090 --> 00:00:54,810 I així, tot i que 1 dividit per 10 és de fet 0.10, 0.1 no pot cabre en un int, 17 00:00:54,810 --> 00:00:58,930 i així ho c fa és que trunca, o llença a les escombraries tot el que després de la 18 00:00:58,930 --> 00:01:01,770 decimal, el que deixa nosaltres amb només 0. 19 00:01:01,770 --> 00:01:04,989 >> Però llavors, per descomptat, amb la impressió f, que especifiquem que volem imprimir a f 20 00:01:04,989 --> 00:01:09,260 un decimal, de manera que 0 es mostra com 0.0. 21 00:01:09,260 --> 00:01:11,540 Bé, clarament això és un problema que necessita una solució. 22 00:01:11,540 --> 00:01:14,025