1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:01,830 >> DAVID MALAN: Così come si può risolviamo questo problema? 3 00:00:01,830 --> 00:00:05,310 Beh, il modo più semplice è solo per evitare int del tutto, e invece definiscono 4 00:00:05,310 --> 00:00:06,960 un galleggiante da un galleggiante. 5 00:00:06,960 --> 00:00:12,460 In particolare, cambiamo 1-1,0 e da 10 a 10.0, e quindi salvare questo 6 00:00:12,460 --> 00:00:14,380 file come floats1.c. 7 00:00:14,380 --> 00:00:20,270 Vediamo ora compilarlo con make floats1, e poi eseguirlo con floats1. 8 00:00:20,270 --> 00:00:22,590 Ed ora, anzi vedo 0.1. 9 00:00:22,590 --> 00:00:25,540 >> C'è un altro modo potremmo risolvere , e che sta usando casting. 10 00:00:25,540 --> 00:00:29,750 Casting è il processo di conversione di una tipo di dati all'altro, supponendo che 11 00:00:29,750 --> 00:00:31,130 ha senso farlo. 12 00:00:31,130 --> 00:00:34,370 In questo caso, quello che ho potuto fare è tornare indietro alla versione di codice in cui sono 13 00:00:34,370 --> 00:00:40,050 dividendo una in int da 10 a int, ma Potrei dire esplicitamente al compilatore 14 00:00:40,050 --> 00:00:43,990 che voglio trattare uno come se fosse una galleggiante, anche se è un int, e 15 00:00:43,990 --> 00:00:48,270 Mi piacerebbe trattare 10 come float, anche se, troppo, è un int. 16 00:00:48,270 --> 00:00:51,760 >> In realtà, ho potuto uscire solo con colata uno di questi per un galleggiante, 17 00:00:51,760 --> 00:00:55,350 perché se si divide un galleggiante da un int o un int da un galleggiante, C sarà 18 00:00:55,350 --> 00:00:57,550 tornare a un valore in virgola mobile. 19 00:00:57,550 --> 00:01:01,150 Ma in questo caso, per buona misura, io convertire sia di carri allegorici, ricompilare 20 00:01:01,150 --> 00:01:06,380 il mio programma con make floats1, quindi eseguirlo con il puntino barra floats1, 21 00:01:06,380 --> 00:01:08,770 e vedo anche 0.1. 22 00:01:08,770 --> 00:01:10,983