Os Integer guardam qualquer número, por maior que seja, até o limite da memória da sua máquina, enquanto o Int corresponde ao conjunto dos números inteiros positivos e negativos que podem ser expressos em 32 ou 64 bits (com garantia de pelo menos -2^29 a 2^29).
O Float corresponde ao conjunto dos números reais, limitado pela precisão do computador.
As operações definidas sobre números geralmente funcionam com um tipo ou com o outro, mas não com os dois.
As funções para converter entre Float e Integer incluem, entre outras, toFloat, que converte Int/Integer para Float, e ceiling, que converte um Float para um Int.
A conversão de um tipo inteiro (Int ou Integer) para qualquer outro tipo numérico é feita com a função fromIntegral.
O tipo de destino é inferido automaticamente.
Por exemplo:
n :: Integer
n = 6
x :: Float
x = fromIntegral n --> x = 6.0
m :: Int
m = 7
y :: Double
y = fromIntegral m --> y = 7.0
Você faz parte de uma organização de bombeiros formada por voluntários internacionais. Por causa da natureza internacional da equipe, um tempo valioso foi perdido nas últimas ocorrências convertendo entre Fahrenheit e Celsius enquanto estimavam a temperatura dentro dos prédios em chamas. Para poupar tempo, e pessoas, você decide criar um programa que converta automaticamente entre Fahrenheit e Celsius para a sua equipe internacional.
Implemente a função tempToC para converter uma temperatura Integer em Fahrenheit para o Float equivalente em Celsius, arredondado para o centésimo mais próximo.
A temperatura em graus Celsius é definida como: T(°C) = (T(°F) - 32) / 1.8.
> tempToC 32
0.00
Implemente a função tempToF para converter uma temperatura Float em Celsius para o equivalente em Fahrenheit.
Por questões de segurança, arredonde para cima o resultado para o Integer imediatamente superior.
A temperatura em graus Fahrenheit é definida como: T(°F) = T(°C) × 1.8 + 32.
> tempToF 4
40
Crie sua conta no Exercism para aprender e dominar Haskell com 107 exercícios e mentoria humana de verdade, tudo de graça.