1 00:00:00,000 --> 00:00:02,360 >> DAVID J.馬蘭:正如你可能知道, 溫度測量使用 2 00:00:02,360 --> 00:00:04,360 在不同的尺度不同 部分世界。 3 00:00:04,360 --> 00:00:09,370 舉例來說,212華氏度 100度和32度 4 00:00:09,370 --> 00:00:11,810 華氏攝氏0度。 5 00:00:11,810 --> 00:00:14,230 那豈不是很好,如果我們有一台電腦 程序,使我們能夠 6 00:00:14,230 --> 00:00:16,950 ,比如說,從華氏溫度轉換 為攝氏? 7 00:00:16,950 --> 00:00:18,510 >> 好了,我們可以編寫程序。 8 00:00:18,510 --> 00:00:24,350 讓我們先從包括cs50.h, 這樣我們就可以使用一個調用的函數 9 00:00:24,350 --> 00:00:28,610 獲得浮動,其中,像GET詮釋,得到了 從用戶數,但這時一 10 00:00:28,610 --> 00:00:31,440 浮點數 - 1 帶小數點。 11 00:00:31,440 --> 00:00:34,840 >> 讓我們也包括標準IO.H 讓我們有機會獲得 12 00:00:34,840 --> 00:00:36,230 功能,如打印f。 13 00:00:36,230 --> 00:00:40,000 而且,我們還主要申報 在通常的方式。 14 00:00:40,000 --> 00:00:42,675 >> 讓我們接下來提示用戶 在華氏溫度。 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 現在,讓我們真正享受溫度 從用戶,首先通過 17 00:00:49,220 --> 00:00:52,910 聲明一個變量叫 F型浮動。 18 00:00:52,910 --> 00:00:56,750 一個浮點,再次,這意味著一個變量, 存儲一個浮點值, 19 00:00:56,750 --> 00:00:58,200 一個有小數點。 20 00:00:58,200 --> 00:01:01,780 >> 讓我們為它分配的回報 GET持股價值。 21 00:01:01,780 --> 00:01:06,080 然後讓我們來計算一下的 就可以了,先聲明再浮 22 00:01:06,080 --> 00:01:11,690 稱為C為攝氏和存儲在C 一些常見的算術結果。 23 00:01:11,690 --> 00:01:19,060 5.0除以9.0倍f零下32.0。 24 00:01:19,060 --> 00:01:23,440 >> 現在,讓我們打印出結果 這個計算。 25 00:01:23,440 --> 00:01:24,730 百分比的F - 26 00:01:24,730 --> 00:01:27,890 標誌著一個佔位符 浮點值 - 27 00:01:27,890 --> 00:01:31,680 逗號C到打印出來的 攝氏溫度。 28 00:01:31,680 --> 00:01:33,000 讓我們來拯救我的決賽。 29 00:01:33,000 --> 00:01:38,220 編譯F到C。運行程序 用點斜線F到C。 30 00:01:38,220 --> 00:01:39,940 >> 讓我們試試這些共同 溫度。 31 00:01:39,940 --> 00:01:45,820 在華氏212度 是100攝氏度。 32 00:01:45,820 --> 00:01:50,090 在華氏32度是 0度左右。 33 00:01:50,090 --> 00:01:54,240 >> 現在,讓我們完善這個程序的一個小 通過不相當印刷盡可能多的0位 34 00:01:54,240 --> 00:01:55,820 之後小數位。 35 00:01:55,820 --> 00:01:57,940 要做到這一點,我要去 回到第11行。 36 00:01:57,940 --> 00:02:03,430 和而不是僅僅指定百分比樓 我要改為指定,也就是說, 37 00:02:03,430 --> 00:02:08,800 0.1樓通知打印F I只 要打印一個浮點值 38 00:02:08,800 --> 00:02:11,750 到小數點後一個值。 39 00:02:11,750 --> 00:02:13,630 >> 讓我們重新保存我的程序。 40 00:02:13,630 --> 00:02:19,680 用make F到C。重新編譯它然後 用點斜線F到C。並重新運行它 41 00:02:19,680 --> 00:02:24,910 讓我們再試一次,比方說,212, 這給了我100.0。 42 00:02:24,910 --> 00:02:28,360 >> 現在值得注意的是,我做了 東西很刻意在第9行。 43 00:02:28,360 --> 00:02:35,830 注意我是如何寫5是5.0,9 為9.0,甚至32為32.0。 44 00:02:35,830 --> 00:02:39,000 好了,前兩個這些值分別為 很刻意挑選為 45 00:02:39,000 --> 00:02:42,200 浮點值,不只是因為 與其餘的一致性 46 00:02:42,200 --> 00:02:42,940 我的計劃 - 47 00:02:42,940 --> 00:02:45,110 這顯然涉及到浮動 點值 - 48 00:02:45,110 --> 00:02:50,210 但因為事實證明,C,如果你 另一個整數除以一個int時, 49 00:02:50,210 --> 00:02:54,350 你會得到導致的答案是 本身一個int,即使這意味著 50 00:02:54,350 --> 00:02:57,450 不必扔掉一切 小數點後。 51 00:02:57,450 --> 00:03:04,990 >> 換句話說,如果我改變這個5.0〜 5或此9.0到9,然後重新保存 52 00:03:04,990 --> 00:03:10,550 我的程序,重新編譯使用make F到C, 然後用點斜線f重新運行它 53 00:03:10,550 --> 00:03:15,310 C和類型的像212的輸入, 注意,答案我要去 54 00:03:15,310 --> 00:03:17,860 得到這個時間其實是非常錯誤的。 55 00:03:17,860 --> 00:03:23,570 0.0不正確的程度 作為攝氏華氏212。 56 00:03:23,570 --> 00:03:24,500 >> 那麼,這是怎麼回事? 57 00:03:24,500 --> 00:03:29,410 那麼,在第9行,因為5現在是一個 整數,因為9是現在的 58 00:03:29,410 --> 00:03:34,810 整數,結果數學 應該是0.5555等等。 59 00:03:34,810 --> 00:03:39,120 但由於結果,根據 C'S規則,必須是一個整數,即 60 00:03:39,120 --> 00:03:44,020 0.5555被扔掉, 留給我們的只是0。 61 00:03:44,020 --> 00:03:48,600 >> 所以,最後,我結束了乘 很意外地0倍f減 62 00:03:48,600 --> 00:03:52,830 32.0,這是無論什麼 總是要給我0。 63 00:03:52,830 --> 00:03:56,930 所以千萬要記住,任何時候使用 在接近浮點值 64 00:03:56,930 --> 00:03:59,860 整數,你不一定 所以你期望得到的答案。 65 00:03:59,860 --> 00:04:04,220 所以要小心使用,因為我在做 第一種情況下,浮點值 66 00:04:04,220 --> 00:04:06,530 在整個以避免任何此類問題。 67 00:04:06,530 --> 00:04:08,267