1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:02,700 >> SPEAKER 1: Giả sử tôi muốn viết một chương trình in ra một phao, 3 00:00:02,700 --> 00:00:05,700 đặc biệt là kết quả chia 1 10. 4 00:00:05,700 --> 00:00:08,830 Vâng, bản năng đầu tiên của tôi sẽ được viết chương trình này như sau. 5 00:00:08,830 --> 00:00:18,160 Float f bằng 1 chia cho 10, và sau đó in e phần trăm .1 f, do đó 6 00:00:18,160 --> 00:00:22,270 có nghĩa rằng tôi muốn in một phao với một số thập phân, 7 00:00:22,270 --> 00:00:26,490 dấu gạch chéo ngược n dấu phẩy f. 8 00:00:26,490 --> 00:00:28,270 Bây giờ chúng ta biên dịch chương trình này. 9 00:00:28,270 --> 00:00:32,980 Làm phao 0 dot dấu gạch chéo phao 0. 10 00:00:32,980 --> 00:00:34,140 >> Vâng, đó là không hoàn toàn đúng. 11 00:00:34,140 --> 00:00:40,210 Tôi khá chắc chắn rằng 1 chia cho 10, hoặc 1/10 không phải là 0.0, nhưng 0.1, nhưng 12 00:00:40,210 --> 00:00:42,820 ở đây tôi nhìn thấy trên màn hình 0.0. 13 00:00:42,820 --> 00:00:43,860 Những gì đang xảy ra? 14 00:00:43,860 --> 00:00:47,790 Vâng, nó quay ra rằng trong c, nếu bạn chia một int bởi một int, 15 00:00:47,790 --> 00:00:49,090 bạn lấy lại một int. 16 00:00:49,090 --> 00:00:54,810 Và vì vậy mặc dù 1 chia cho 10 là thực sự 0.10, 0.1 không có thể phù hợp trong một int, 17 00:00:54,810 --> 00:00:58,930 và vì vậy những gì c, không có gì nó cắt cụt, hoặc ném đi tất cả mọi thứ sau khi 18 00:00:58,930 --> 00:01:01,770 số thập phân, do đó để lại chúng tôi chỉ với 0. 19 00:01:01,770 --> 00:01:04,989 >> Nhưng sau đó, tất nhiên, với in f, chúng tôi xác định rằng chúng tôi muốn in f để 20 00:01:04,989 --> 00:01:09,260 một chữ số thập phân, và do đó 0 được hiển thị như 0.0. 21 00:01:09,260 --> 00:01:11,540 Vâng, rõ ràng đây là một vấn đề mà cần một giải pháp. 22 00:01:11,540 --> 00:01:14,025