1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:02,700 >> SPEAKER 1: Predpokladajme, že by som chcel napísať program, ktorý vytlačí float, 3 00:00:02,700 --> 00:00:05,700 konkrétne výsledok delenie 1. do 10.. 4 00:00:05,700 --> 00:00:08,830 No, moje prvé inštinkt by bolo tento program napísať takto. 5 00:00:08,830 --> 00:00:18,160 Float f sa rovná 1 delené 10, a potom vytlačiť f percent .1 f, a tým 6 00:00:18,160 --> 00:00:22,270 znamenať, že by som chcel vytlačiť plavák na jedno desatinné miesto, 7 00:00:22,270 --> 00:00:26,490 spätné lomítko n čiarka f 8 00:00:26,490 --> 00:00:28,270 Poďme sa teraz skompilovať tento program. 9 00:00:28,270 --> 00:00:32,980 Skontrolujte float 0 bodov lomítko plavák 0. 10 00:00:32,980 --> 00:00:34,140 >> No, to nie je tak celkom pravda. 11 00:00:34,140 --> 00:00:40,210 Som si celkom istý, že 1 delené 10, alebo 1/10 je to 0,0, ale 0,1, a napriek tomu 12 00:00:40,210 --> 00:00:42,820 Tu vidím na obrazovke 0.0. 13 00:00:42,820 --> 00:00:43,860 Čo sa deje? 14 00:00:43,860 --> 00:00:47,790 No, ukázalo sa, že v c, ak rozdeliť int o int, 15 00:00:47,790 --> 00:00:49,090 dostanete späť int. 16 00:00:49,090 --> 00:00:54,810 A tak aj napriek tomu, 1 delené 10 je dokonca 0,10, 0,1 nevojde do int, 17 00:00:54,810 --> 00:00:58,930 a tak to, čo c to je to skráti, alebo zahodí všetko, čo po 18 00:00:58,930 --> 00:01:01,770 desatinné miesto, čím ponecháva nám sa práve 0. 19 00:01:01,770 --> 00:01:04,989 >> Ale potom, samozrejme, s potlačou f, my určiť, že by sme chceli vytlačiť f na 20 00:01:04,989 --> 00:01:09,260 jedno desatinné miesto, a tak, aby 0 sa zobrazí ako 0.0. 21 00:01:09,260 --> 00:01:11,540 No, jasne ide o problém ktorý potrebuje riešenie. 22 00:01:11,540 --> 00:01:14,025