Conversões Numéricas Explícitas
Converta deliberadamente entre tipos numéricos para evitar erros.
Conversões Numéricas Explícitas é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.
O Swift exige conversão explícita
O Swift não converte automaticamente entre tipos numéricos. Para combinar um Int e um Double, é necessário converter um deles explicitamente.
let count = 3
let price = 2.5
let total = Double(count) * price
print(total)Por que não há conversão implícita
Conversões implícitas podem causar perda silenciosa de dados ou alterar o significado. O Swift faz com que você declare sua intenção, evitando erros sutis.
let whole = 7
let fraction = 0.5
let result = Double(whole) + fraction
print(result)Convertendo Int em Double
Envolva um inteiro em Double(...) para obter sua forma de ponto flutuante. Isso é necessário antes de realizar uma divisão real.
let a = 7
let b = 2
let ratio = Double(a) / Double(b)
print(ratio)Convertendo Double em Int
Aplicar Int(...) a um Double trunca em direção a zero, descartando a parte fracionária, sem arredondar.
let value = 3.99
print(Int(value))
print(Int(-3.99))Arredondando antes da conversão
Se quiser arredondar em vez de truncar, chame .rounded() primeiro e depois converta para Int.
let value = 3.6
let rounded = Int(value.rounded())
print(rounded)Convertendo entre tipos inteiros
Até a conversão de um inteiro para outro exige conversão explícita, como Int(small) ou Int8(big), porque os intervalos diferem.
let small: Int8 = 100
let big: Int = Int(small)
print(big + 1000)Conversão com estouro
Converter um valor que não cabe no tipo de destino causa uma falha em tempo de execução. Quando houver dúvida, valide primeiro o intervalo.
let n = 200
if n <= Int(Int8.max) {
print("fits")
} else {
print("would overflow Int8")
}Inicializadores numéricos que podem falhar
Algumas conversões usam inicializadores que podem falhar, como Int8(exactly:), que retornam um opcional e retornam nil quando o valor não cabe exatamente.
let ok = Int8(exactly: 100)
let bad = Int8(exactly: 300)
print(ok as Any)
print(bad as Any)Conversão de String em número
Converter uma String em um número também é explícito e pode falhar, retornando um opcional caso o texto não seja um número válido.
let text = "42"
if let n = Int(text) {
print("Parsed:", n)
}
print(Int("hello") as Any)Combinando cálculos numéricos mistos
Um padrão comum: converta todos os operandos para um tipo comum, faça os cálculos e depois converta o resultado final de volta, se necessário.
let items = 5
let pricePerItem = 1.99
let total = Double(items) * pricePerItem
let rounded = (total * 100).rounded() / 100
print("Total:", rounded)A conversão mantém o código seguro
Conversões explícitas documentam onde ocorrem mudanças de precisão, facilitando a auditoria e a compreensão do código numérico.
let measured = 9.81
let asInt = Int(measured)
let backToDouble = Double(asInt)
print(measured, asInt, backToDouble)Verificação rápida
Preveja o resultado da conversão de um Double para Int.
Recapitulação: conversões numéricas explícitas
Você aprendeu que o Swift nunca converte tipos numéricos implicitamente, que Int(...) trunca Doubles enquanto Double(...) amplia Ints e que inicializadores que podem falhar, como Int8(exactly:) e Int("text"), retornam opcionais quando uma conversão não pode ser concluída.
let pieces = 7
let share = Double(pieces) / 2.0
print("Share:", share)
print("Truncated:", Int(share))Perguntas Frequentes
A aula “Conversões Numéricas Explícitas” é grátis?
Sim — o texto completo de “Conversões Numéricas Explícitas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.
O que vou aprender em “Conversões Numéricas Explícitas”?
Converta deliberadamente entre tipos numéricos para evitar erros. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Swift Academy?
Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Conversões Numéricas Explícitas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Swift Academy?
Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Tipos Inteiros e Seus Intervalos
- Ponto Flutuante: Double versus Float
- Conversões Numéricas Explícitas
- Literais Numéricos e Sublinhados