1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:01,830 >> DAVID Malan: Felly sut y gall rydym yn datrys y broblem hon? 3 00:00:01,830 --> 00:00:05,310 Wel, y ffordd hawsaf yw dim ond er mwyn osgoi ints yn gyfan gwbl, ac yn hytrach yn diffinio 4 00:00:05,310 --> 00:00:06,960 un arnofio gan fflôt. 5 00:00:06,960 --> 00:00:12,460 Yn benodol, gadewch i ni newid 1-1.0 a 10-10.0, ac yna achub y 6 00:00:12,460 --> 00:00:14,380 ffeil fel floats1.c. 7 00:00:14,380 --> 00:00:20,270 Gadewch i ni yn awr llunio gyda gwneud floats1, ac yna rhedeg gyda floats1. 8 00:00:20,270 --> 00:00:22,590 Ac yn awr, yr wyf yn wir yn gweld 0.1. 9 00:00:22,590 --> 00:00:25,540 >> Mae ffordd arall y gallem ddatrys hynny, ac mae hynny'n defnyddio castio. 10 00:00:25,540 --> 00:00:29,750 Castio yw'r broses o drosi un math data i un arall, gan dybio ei fod 11 00:00:29,750 --> 00:00:31,130 gwneud synnwyr i wneud hynny. 12 00:00:31,130 --> 00:00:34,370 Yn yr achos hwn, yr hyn y gallwn ei wneud yw mynd yn ôl i'r fersiwn o cod lle rwy'n 13 00:00:34,370 --> 00:00:40,050 rhannu un yn int o 10 yn int, ond Gallwn ddweud yn benodol y casglwr 14 00:00:40,050 --> 00:00:43,990 yr wyf am ei drin 1 fel pe ei fod yn arnofio, hyd yn oed er ei fod yn int, a 15 00:00:43,990 --> 00:00:48,270 Hoffwn i drin 10 fel fflôt, er ei fod, hefyd, yn int. 16 00:00:48,270 --> 00:00:51,760 >> Mewn gwirionedd, gallwn fynd i ffwrdd gyda dim ond castio un o'r rhain i fflôt, 17 00:00:51,760 --> 00:00:55,350 oherwydd os ydych yn rhannu fflôt gan int, neu int gan fflôt, bydd C 18 00:00:55,350 --> 00:00:57,550 dychwelyd atoch gwerth pwynt arnawf. 19 00:00:57,550 --> 00:01:01,150 Ond yn yr achos hwn, ar gyfer mesur da, 'n annhymerus' trosi ddau i fflotiau, ail-grynhoi 20 00:01:01,150 --> 00:01:06,380 fy rhaglen gyda gwneud floats1, yna rhedeg gyda floats1 slaes dot, 21 00:01:06,380 --> 00:01:08,770 ac yr wyf hefyd yn gweld 0.1. 22 00:01:08,770 --> 00:01:10,983