溫度

溫度

學習練習

簡介

Integer可以存放任意大的數字,只受限於你機器的記憶體,而Int則對應到可用 32 或 64 位元表示的正負整數集合(至少保證能表示 -2^29 到 2^29)。

Float對應到實數的集合,但其精度受電腦限制。 定義在數字上的運算通常只適用於其中一種型別,無法同時適用於兩者。

在Float和Integer之間轉換的函式,其中包括toFloat(將Int/Integer轉換成Float)和ceiling(將Float轉換成Int)等。

從整數型別(Int或Integer)轉換成任何其他數值型別時,是使用函式fromIntegral來完成。 目標型別會自動推論。 例如:

n :: Integer
n = 6
x :: Float
x = fromIntegral n      --> x = 6.0

m :: Int
m = 7
y :: Double
y = fromIntegral m      --> y = 7.0

說明

你是一個國際志工消防隊的成員。由於團隊成員來自世界各地,過去幾次出勤時,大家為了估算燃燒中建築物內的溫度,得在華氏與攝氏之間來回換算,浪費了許多寶貴的時間。為了節省時間,也為了救人,你決定寫一個程式,替你的國際團隊自動換算華氏與攝氏。

1. 將華氏轉換為攝氏

實作 tempToC 函式,將以華氏表示的 Integer 溫度轉換成對應的攝氏 Float,並四捨五入到小數點後第二位。 攝氏溫度的定義為:T(°C) = (T(°F) - 32) / 1.8。

> tempToC 32
0.00

2. 將攝氏轉換為華氏

實作 tempToF 函式,將以攝氏表示的 Float 溫度轉換成對應的華氏溫度。 基於安全考量,請將結果無條件進位到下一個最大的 Integer。 華氏溫度的定義為:T(°F) = T(°C) × 1.8 + 32。

> tempToF 4
40
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Haskell Exercism

準備好開始 溫度 了嗎?

註冊 Exercism,透過 107 個練習 和真人引導來學習並精通 Haskell,全部免費。