DAVID J.馬蘭:正如你可能知道, 溫度測量使用 在不同的尺度不同 部分世界。 舉例來說,212華氏度 100度和32度 華氏攝氏0度。 那豈不是很好,如果我們有一台電腦 程序,使我們能夠 ,比如說,從華氏溫度轉換 為攝氏? 好了,我們可以編寫程序。 讓我們先從包括cs50.h, 這樣我們就可以使用一個調用的函數 獲得浮動,其中,像GET詮釋,得到了 從用戶數,但這時一 浮點數 - 1 帶小數點。 讓我們也包括標準IO.H 讓我們有機會獲得 功能,如打印f。 而且,我們還主要申報 在通常的方式。 讓我們接下來提示用戶 在華氏溫度。 現在,讓我們真正享受溫度 從用戶,首先通過 聲明一個變量叫 F型浮動。 一個浮點,再次,這意味著一個變量, 存儲一個浮點值, 一個有小數點。 讓我們為它分配的回報 GET持股價值。 然後讓我們來計算一下的 就可以了,先聲明再浮 稱為C為攝氏和存儲在C 一些常見的算術結果。 5.0除以9.0倍f零下32.0。 現在,讓我們打印出結果 這個計算。 百分比的F - 標誌著一個佔位符 浮點值 - 逗號C到打印出來的 攝氏溫度。 讓我們來拯救我的決賽。 編譯F到C。運行程序 用點斜線F到C。 讓我們試試這些共同 溫度。 在華氏212度 是100攝氏度。 在華氏32度是 0度左右。 現在,讓我們完善這個程序的一個小 通過不相當印刷盡可能多的0位 之後小數位。 要做到這一點,我要去 回到第11行。 和而不是僅僅指定百分比樓 我要改為指定,也就是說, 0.1樓通知打印F I只 要打印一個浮點值 到小數點後一個值。 讓我們重新保存我的程序。 用make F到C。重新編譯它然後 用點斜線F到C。並重新運行它 讓我們再試一次,比方說,212, 這給了我100.0。 現在值得注意的是,我做了 東西很刻意在第9行。 注意我是如何寫5是5.0,9 為9.0,甚至32為32.0。 好了,前兩個這些值分別為 很刻意挑選為 浮點值,不只是因為 與其餘的一致性 我的計劃 - 這顯然涉及到浮動 點值 - 但因為事實證明,C,如果你 另一個整數除以一個int時, 你會得到導致的答案是 本身一個int,即使這意味著 不必扔掉一切 小數點後。 換句話說,如果我改變這個5.0〜 5或此9.0到9,然後重新保存 我的程序,重新編譯使用make F到C, 然後用點斜線f重新運行它 C和類型的像212的輸入, 注意,答案我要去 得到這個時間其實是非常錯誤的。 0.0不正確的程度 作為攝氏華氏212。 那麼,這是怎麼回事? 那麼,在第9行,因為5現在是一個 整數,因為9是現在的 整數,結果數學 應該是0.5555等等。 但由於結果,根據 C'S規則,必須是一個整數,即 0.5555被扔掉, 留給我們的只是0。 所以,最後,我結束了乘 很意外地0倍f減 32.0,這是無論什麼 總是要給我0。 所以千萬要記住,任何時候使用 在接近浮點值 整數,你不一定 所以你期望得到的答案。 所以要小心使用,因為我在做 第一種情況下,浮點值 在整個以避免任何此類問題。